200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 猫猫学iOS(四十五)之常用的小功能比如打电话 打开网址 发邮件 发短信打开其他应用。...

猫猫学iOS(四十五)之常用的小功能比如打电话 打开网址 发邮件 发短信打开其他应用。...

时间:2023-08-08 19:55:11

相关推荐

猫猫学iOS(四十五)之常用的小功能比如打电话 打开网址 发邮件 发短信打开其他应用。...

猫猫分享,必须精品

原创文章,欢迎转载。转载请注明:翟乃玉的博客

地址:/u013357243?viewmode=contents

简介

iOS中的很多小功能都是非常简单的,几行代码就搞定了,比如打电话、打开网址、发邮件、发短信、打开其他应用等。

打电话

方法1

最简单最直接的方式:直接跳到拨号界面

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

缺点

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

方法2

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

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

缺点

因为是私有API,所以可能不会被审核通过(别以为能做坏事了,也就自己爽爽自己)

方法3

创建一个UIWebView来加载URL,拨完后能自动回到原应用

if (_webView == nil) {_webView = [[UIWebView alloc] initWithFrame:CGRectZero];}[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"tel://10010"]]];

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

发短信

方法1

直接跳到发短信界面,但是不能指定短信内容,而且不能自动回到原应用

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

方法2

如果想指定短信内容,那就得使用MessageUI框架

包含主头文件

import

MFMessageComposeViewController *vc = [[MFMessageComposeViewController alloc] init];// 设置短信内容vc.body = @"吃饭了没?";// 设置收件人列表vc.recipients = @[@"10010", @"0010"];// 设置代理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) {NSLog(@"取消发送");} else if (result == MessageComposeResultSent) {NSLog(@"已经发出");} else {NSLog(@"发送失败");}}

发邮件

方法1

用自带的邮件客户端,发完邮件后不会自动回到原应用

NSURL *url = [NSURL URLWithString:@"mailto://10010@"];[[UIApplication sharedApplication] openURL:url];

方法2

跟发短信的第2种方法差不多,只不过控制器类名叫做:MFMailComposeViewController

假设发送的邮件内容如右图所示,代码实现看备注

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

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{// 关闭邮件界面[controller dismissViewControllerAnimated:YES completion:nil];if (result == MFMailComposeResultCancelled) {NSLog(@"取消发送");} else if (result == MFMailComposeResultSent) {NSLog(@"已经发出");} else {NSLog(@"发送失败");}}

打开其他常见文件

如果想打开一些常见文件,比如html、txt、PDF、PPT等,都可以使用UIWebView打开

只需要告诉UIWebView文件的URL即可

至于打开一个远程的共享资源,比如http协议的,也可以调用系统自带的Safari浏览器:

NSURL *url = [NSURL URLWithString:@”"];[[UIApplication sharedApplication] openURL:url];

应用间跳转

有时候,需要在本应用中打开其他应用,比如从A应用中跳转到B应用

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

B应用的URL地址就是:mm://

接着在A应用中使用UIApplication完成跳转

NSURL *url = [NSURL URLWithString:@”mm://”];

[[UIApplication sharedApplication] openURL:url];

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。