常用小功能

小功能简介

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 <MessageUI/MessageUI.h>

显示发短信的控制器

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

// 设置短信内容

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

// 设置收件人列表

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

// 设置代理

vc.messageComposeDelegate = self;

// 显示控制器

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

发短信-方法2

代理方法,当短信界面关闭的时候调用,发完后会自动回到原应用

- (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@qq.com"];

[[UIApplication sharedApplication] openURL:url];

发邮件-方法2

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

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

发邮件-方法2

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

- (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:@”http://www.baidu.com"];

[[UIApplication sharedApplication] openURL:url];

应用间跳转

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

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

B应用的URL地址就是:mj://ios.itcast.cn

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

NSURL *url = [NSURL URLWithString:@"mj://ios.itcast.cn"];

[[UIApplication sharedApplication] openURL:url];

应用评分

为了提高应用的用户体验,经常需要邀请用户对应用进行评分

应用评分无非就是跳转到AppStore展示自己的应用,然后由用户自己撰写评论

如何跳转到AppStore,并且展示自己的应用

Ø方法1

NSString *appid = @"444934666";

NSString *str = [NSString stringWithFormat:

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

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

Ø方法2

NSString *str = [NSString stringWithFormat:

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

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

真机调试

真机调试的主要步骤

1.登录开发者主页
2.生成cer证书:cer是一个跟电脑相关联的证书文件,让电脑具备真机调试的功能
3.添加App ID:调试哪些app?
4.注册真机设备:哪台设备需要做真机调试?
5.生成MobileProvision文件:结合2、3、4生成一个手机规定文件
6.导入cer、MobileProvision文件

最终会得到2个文件

ØCer文件:让电脑具备真机调试的功能
ØMobileProvision文件:哪台设备、哪些app、哪台电脑需要做真机调试?

真机调试的步骤01-登录开发者主页

登录开发者主页

https://developer.apple.com/membercenter/index.action

管理证书(前提:得花99$或299$加入开发者计划)

真机调试的步骤02-生成cer证书

添加cer证书

真机调试的步骤02-生成cer证书

利用钥匙串生成cer签名请求文件

真机调试的步骤02-生成cer证书

选择cer签名请求文件,生成并且下载cer证书

真机调试的步骤03-添加App ID

添加App ID

真机调试的步骤04-注册真机设备

添加真机设备

真机调试的步骤04-注册真机设备

利用Xcode查看真机设备的唯一标识(插上USB数据线)

真机调试的步骤04-注册真机设备

填写设备名称和唯一标识

真机调试的步骤05-生成MobileProvision文件

添加MobileProvision文件

真机调试的步骤05-生成MobileProvision文件

选择App ID

真机调试的步骤05-生成MobileProvision文件

填写MobileProvision文件名

真机调试的步骤06-导入cer、MobileProvision文件

经过前面的几个步骤,已经得到2个文件

真机调试的步骤06-导入cer、MobileProvision文件

打开任意程序,选择真机设别,点击运行(第一次运行会出现右图)

替换旧的调试证书

iOS中打电话、打开网址、发邮件、发短信等的更多相关文章

  1. 短信,微信API(还能发邮件,短信,IM聊天)

    1.用于微信公众平台的Js API(WeixinApi) Github地址:https://github.com/zxlie/WeixinApi http://www.baidufe.com/item ...

  2. 基于日志服务的GrowthHacking(1):数据埋点和采集(APP、Web、邮件、短信、二维码埋点技术)

    数据质量决定运营分析的质量 在上文中,我们介绍了GrowthHacking的整体架构,其中数据采集是整个数据分析的基础,只有有了数据,才能进行有价值的分析:只有高质量的数据,才能驱动高质量的运营分析. ...

  3. zabbix告警邮件、短信发送错误快速排查方法

    zabbix告警邮件.短信发送错误快速排查方法 背景 zabbix告警邮件.短信经常有同事反馈发送错误的情况,这个问题排查的角度很多,那么最快捷的角度是什么呢? 在我看来,最快的角度就是判断这个告警邮 ...

  4. iOS:实现邮件和短信发送的简单示例

    发送邮件1.导入库文件:MessageUI.framework2.引入头文件3.实现代理<MFMailComposeViewControllerDelegate> 和 <UINavi ...

  5. 一百四十七:CMS系统之celery实现邮件和短信异步发送

    celery工作原理 celery官方文档:https://docs.celeryproject.org/en/latest/ 安装:pip install celery windows下还需安装ev ...

  6. python学习总结------邮件与短信

    邮件发送 - 简介: - 邮件服务器.用户名.密码 - 相关协议: - SMTP:简单邮件传输协议 - POP3:邮局通讯协议 - IMAP:交互式邮件存取协议 - SMTP协议默认端口是25 - 用 ...

  7. python-在python3中使用容联云通讯发送短信验证码

    容联云通讯是第三方平台,能够提供短信验证码和语音通信等功能,这里只测试使用短信验证码的功能,因此只需完成注册登录(无需实名认证等)即可使用其短信验证码免费测试服务,不过免费测试服务只能给控制台中指定的 ...

  8. Flask实战第67天:Flask+Celery实现邮件和短信异步发送

    之前在项目中我们发送邮件和 短信都是阻塞的,现在我们来利用Celery来优化它们 官方使用文档: http://flask.pocoo.org/docs/1.0/patterns/celery/ re ...

  9. 越狱的 ios 如何 获取 读取 提取 手机上的 短信 通话记录 联系人 等信息

    http://willson.sinaapp.com/2011/12/iphone 获取短信脚本.html  Iphone获取短信脚本http://bbs.9ria.com/thread-209349 ...

随机推荐

  1. UVa 11015 - 05-2 Rendezvous

    題目:有一個班級的學生要一起寫作業,所以他們要到一個統一的地點.現在給你他們各自的位置, 問集合地點定在哪,能够讓全部人走的總路徑長度最小. 分析:圖論.最短路.直接利用Floyd計算最短路,找到和值 ...

  2. Behavioral模式之Visitor模式

    1.意图 表示一个作用于某对象结构中的各元素的操作.它使你能够在不改变各元素的类的前提下定义作用于这些元素的新操作. 2.别名 无 3.动机 考虑一个编译器.他将源程序表示为一个抽象语法树.该编译器须 ...

  3. 【解决方法】Unexpected namespace prefix “xmlns” found for tag Layout

    问题描写叙述 出错代码例如以下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&quo ...

  4. vue实现一个会员卡的组件(可以动态传入图片(分出的一个组件)、背景、文字、卡号等)

    自己在写这个组件的时候主要遇到的问题就是在动态传入背景图片或者背景色的时候没能立马顺利写出来,不过现在实现了这个简单组件就和大家分享一下 <template> <div class= ...

  5. Zookeeper源码用ant进行编译为eclipse工程--转载

    原文地址:http://www.it165.net/os/html/201411/10142.html Zookeeper GitHub的下载地址是:https://github.com/apache ...

  6. iOS_07_流程控制

    一.流程控制 * 顺序结构:默认的流程结构.按照书顺序执行每一条语句. * 选择结构:对给定得条件进行判断,再根据判断结果来决定执行哪一段代码. * 循环结构:在给定条件成立的情况下,反复执行某一段代 ...

  7. ajax+客户端与服务器端的交互

    一. AJAX 原生JS var xhr=new XMLHttpRequest(); xhr.open("GET","[请求地址]",false); xhr.o ...

  8. call.apply.冒充对象继承

    call方法:让调用对象执行,然后第一参数是谁.调用对象的this就改变,指向谁,后边跟参数,依次对应传入 apply方法:让调用对象执行,然后第一参数是谁.调用对象的this就改变指向是谁,后边跟参 ...

  9. 学习笔记:mpvue开发小程序——入门

    接下来可能要开发一个小程序,同事推荐使用mpvue,那么我提前熟悉下. 官网地址:http://mpvue.com/ 1.快速上手 http://mpvue.com/mpvue/quickstart/ ...

  10. 如何使用 PyCharm 将代码上传到GitHub上(详细图解)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 一丶说明 测试条件:需要有GitHub账号以及在本地安装了Git工具,无论是Linux环境还是Windows都是一样的 如果还没有 ...