iOS中的很多功能都是非常简单的,几行代码就搞定了,比如打电话、打开网址、发邮件、发短信等,这里总结几个比较常用的:
1.打电话
方式一:最简单最直接的方式:直接跳到拨号界面

NSURL *url
= [NSURL URLWithString:@"tel://10010"];

[[UIApplication sharedApplication] openURL:url];

缺点:

电话打完后,不会自动回到原应用,直接停留在通话记录界面

方式二:拨号之前会弹框询问用户是否拨号,拨完后能自动回到原应用

NSURL *url
= [NSURL URLWithString:@"telprompt://10010"];

[[UIApplication sharedApplication] openURL:url];

缺点:

此处调用的是私有API,所以可能不会被审核通过,一般制作越狱后的插件或APP使用

方式三(目前发现最终极的方法):创建一个UIWebView来加载URL,拨完后能自动回到原应用

if (_telWebView == nil)
{

_telWebView =
[[UIWebView alloc] initWithFrame:CGRectZero];

}

[_telWebView loadRequest:[NSURLRequest requestWithURL:[NSURLURLWithString:@"tel://10010"]]];

注意:这个webView千万不要添加到界面上来,不然会挡住其他界面

2.发短信

方式一:直接跳到发短信界面

NSURL *url
= [NSURL URLWithString:@"sms://10010"];

[[UIApplication sharedApplication] openURL:url];

缺点:不能指定短信内容,而且不能自动回到原应用

方式二(推荐):发完后会自动回到原应用且可自定义短信内容
首先导入MessageUI框架并包含主头文件#import <</span>MessageUI/MessageUI.h>

MFMessageComposeViewController *vc = [[MFMessageComposeViewController alloc] init];

// 设置短信内容

vc.body = @"吃饭了没?";

// 设置收件人列表

vc.recipients = @[@"10010", @"02010010"];

// 设置代理

vc.messageComposeDelegate = self;

// 显示控制器

[self presentViewController:vc animated:YES completion:nil];

调用代理方法:

- (void)messageComposeViewController:(MFMessageComposeViewController*)controller didFinishWithResult:(MessageComposeResult)result

{

// 关闭短信界面

[controller dismissViewControllerAnimated:YES completion:nil];

if(result
== MessageComposeResultCancelled) {

SJLog(@"取消发送!");

} else if(result
== MessageComposeResultSent) {

SJLog(@"发送成功!");

} else {

SJLog(@"发送失败!");

}

}

3.发邮件
方式一:

NSURL *url
= [NSURL URLWithString:@"mailto://10010@qq.com"];

[[UIApplication sharedApplication] openURL:url];

缺点:发完邮件后不会自动回到原应用

方式二:

使用控制器:MFMailComposeViewController

// 不能发邮件

if (![MFMailComposeViewController canSendMail])

{

return;

}

MFMailComposeViewController *vc = [[MFMailComposeViewController alloc] init];

// 设置邮件主题

[vc setSubject:@"会议"];

// 设置邮件内容

[vc setMessageBody:@"今天下午开会吧" isHTML:NO];

// 设置收件人列表

[vc setToRecipients:@[@"643055866@qq.com"]];

// 设置抄送人列表

[vc setCcRecipients:@[@"1234@qq.com"]];

// 设置密送人列表

[vc setBccRecipients:@[@"56789@qq.com"]];

// 添加附件(一张图片)

UIImage *image = [UIImage imageNamed:@"lufy.jpeg"];

NSData *data = UIImageJPEGRepresentation(image, 0.5);

[vc addAttachmentData:data mimeType:@"image/jepg"fileName:@"lufy.jpeg"];

// 设置代理

vc.mailComposeDelegate = self;

// 显示控制器

[self presentViewController:vc animated:YES completion:nil];

邮件发送后的代理方法回调,发完后会自动回到原应用

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error

{

// 关闭邮件界面

[controller dismissViewControllerAnimated:YES completion:nil];

if (result == MFMailComposeResultCancelled) {

SJLog(@"取消发送!");

} else if (result == MFMailComposeResultSent) {

SJLog(@"发送成功!");

} else {

SJLog(@"发送失败!");

}

}

4.打开常见文件

我们常想打开一些常见文件,比如html、txt、PDF、PPT等;但不知道用什么APP打开,其实它们都可以使用UIWebView打开,我们要做得只是告诉UIWebView文件的URL即可

如果需要打开一个远程的共享资源,比如:http,也可以调用Safari浏览器:

NSURL *url
= [NSURLURLWithString:@”http://www.baidu.com"];

[[UIApplication sharedApplication] openURL:url];

5.应用间跳转

首先,应用需要有自己的URL地址(在Info.plist中配置)

这样这个APP的URL地址就是:ysj://blog.sina.com.cn/sharebase

接着在需要跳转的APP中使用以下代码完成跳转:

NSURL *url = [NSURL URLWithString:@"ysj://blog.sina.com.cn/sharebase"];

[[UIApplication sharedApplication] openURL:url];

6.应用评分

有时候需要用户为我们的应用进行评分(其实并没有什么卵用 —— 都是拒绝T^T),那怎么做呢?

思想:其实就是跳转到Appstore展示自己的应用,然后由用户自己评论

跳转Appstore并展示应用

方式一:

NSString *appid
= @"444934666";

NSString *str
= [NSStrinstringWithFormat:@"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",
appid];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];

方式二:

NSString *str
= [NSString stringWithFormat:@"itms-apps://itunes.apple.com/cn/app/id%@?mt=8",
appid];

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];

iOS 打电话、发短信、邮件、打开网址、调用应用等合集的更多相关文章

  1. IOS 开发,调用打电话,发短信,打开网址

    IOS 开发,调用打电话,发短信,打开网址   1.调用 自带mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString: ...

  2. iOS - 打电话, 发短信

    电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplicatio ...

  3. ios打电话发短信接口

    电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplicatio ...

  4. iOS 打电话 发短信(转载)

    官方代码 发短息和邮件添加MessageUI.framework 库 发送信息 - (IBAction)showSMSPicker:(id)sender { // You must check tha ...

  5. ios之调用打电话,发短信,打开网址

    1.调用 自带mail [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mailto://admin@hz ...

  6. 向android模拟器打电话发短信的简单方法

    在开发android应用程序时,有时候需要测试一下向android手机拨打电话发送短信时该应用程序的反应.譬如编写一个广播接收器,来提示用户有短信收到或者处理短信,就需要向该手机发送短信来进行测试.这 ...

  7. IOS,发短信,发邮件,打电话

    今天把APP里常用小功能 例如发短信.发邮件.打电话.全部拿出来简单说说它们的实现思路. 1.发短信实现打电话的功能,主要二种方法,下面我就分别说说它们的优缺点.1.1.发短信(1)——URL // ...

  8. iOS开发之调用系统打电话发短信接口以及程序内发短信

    在本篇博客开头呢,先说一下写本篇的博客的原因吧.目前在做一个小项目,要用到在本应用程序内发验证码给其他用户,怎么在应用内发送短信的具体细节想不大起来了,于是就百度了一下,发现也有关于这方面的博客,点进 ...

  9. 打电话,发短信,发邮件,app跳转

    1.打电话 - (IBAction)callPhone1:(id)sender { NSURL *url = [NSURL URLWithString:@"tel://18500441739 ...

  10. iOS开发中打电话发短信等功能的实现

    在APP开发中,可能会涉及到打电话.发短信.发邮件等功能.比如说,通常一个产品的"关于"页面,会有开发者的联系方式,理想情况下,当用户点击该电话号码时,能够自动的帮用户拨出去,就涉 ...

随机推荐

  1. 解决The file “FWLifeApp” couldn’t be opened because you don’t have permission to view it.问题

    The file “FWLifeApp” couldn’t be opened because you don’t have permission to view it问题是因为项目文件中的Bundl ...

  2. C#的类,构造函数以及Array阵列的数据填充与绑定

    今天学习,如标题. 创建一个类,字段属性构造函数: Source code: using System; using System.Collections.Generic; using System. ...

  3. android The connection to adb is down 错误信息

    之前运行eclipse执行android应用都没问题,今天突然出问题了,控制台报错: The connection to adb is down, and a severe error has occ ...

  4. C# Redis使用之StackExchange

    第1章   安装 在.NET平台使用Redis需要做如下准备工作: 创建一个新的Visual Studio应用或者打开一个已经存在的Visual Studio应用. 打开NuGet程序包 搜索并添加S ...

  5. 微软Dynamics 使用葡萄城的Wijmo 5提供移动端用户界面选择

    近日,全球最大的控件提供商葡萄城公司宣布: 葡萄城近日与微软公司达成合作,将Wijmo 产品线的HTML5和JaveScript 控件融合到微软Dynamics CRMOnline 2016版中. 随 ...

  6. 【java手记】------------------------java中转发和重定向区别

    转发: request.getRequestDispatcher("success.jsp").forward(request,response); 在服务器组件收到用户请求后.经 ...

  7. EL表达式错误attribute items does not accept any expressions

    解决方法是将 <%@taglib prefix="c" uri="http://java.sun.com/jstl/core"%> 改成 <% ...

  8. oracle的基本数据类型(转载)

    数据类型是在设计表结构中需要定义的,选择适当的数据类型可以节省存储空间,提高运算效率. Oracle数据类型主要包括 1.字符型 适合保存字符串类型的数据,如姓名.地址.简介等等. 如:char(20 ...

  9. 使用HttpDownLoadHelper下载文件

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO ...

  10. 从零开始学Python04作业源码:模拟ATM电子银行(仅供参考)

    bin目录:程序启动入口 ATM_start.py: #!/usr/bin/python # -*- coding: utf-8 -*- # 模拟ATM电子银行+登录账户权限控制+管理员管理模块 # ...