没事写了个demo,发现系统的短息、电话、邮件有时候不按自己的想法进行。以下是研究的结果,供大家参考!
1.电话:平时看到其他公司做的APP,拨打某一个电话时,会先跳出一个弹出框,显示是否需要拨打某个电话,并且把即将拨打的电话显示出来。
这种情况Apple提供了telprompt:方法,但是据说是Apple的私用方法,网上说可能被拒,但是又有人上架成功了的,so,使用此方法的时候多斟酌下。
NSString *urlStr = [NSString stringWithFormat:@"telprompt:%@", @"*********"];
NSURL *url = [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:url];
网上的说法是:在打电话前先提示用户,通话结束后反馈开发者的应用程序 不合法,可能无法通过苹果商店的审核。
另外,要满足这种风格的拨打电话,还可以借助UIWebView打电话(会回来)一般都是用这种,解决了不越狱的问题。2. 短信:在调用系统短信时,很多时候需要给收信人发送特定的内容,很多时候都不可以完成。使用以下代码可以调用iOS 的短信功能。
NSString *urlStr = [NSString stringWithFormat:@"sms:%@&body=%@", @"*********", @"This is content"];
注意的地方是sms:%@&body= 中间需要用“&”
3.邮件:邮件需要的功能和短信的功能差不多,但是邮件会涉及到抄送、密送,使用以下代码可以完成。
NSString *name = @"launch mail success";
NSString *reason = @"you well";
NSString *urlStr = [NSString stringWithFormat:
@"mailto:****@**.com?"//收件人
"bcc=djan@qq.com&"//密送
"cc=2345113@qq.com&"//抄送
"subject= Bug Report &"//主题
"body=Thanks for your coorperation!<br><br><br>"
"AppName:xxxxxx<br>"
"Details:<br>%@<br>-<br>%@<br>-<br>", name,reason];
NSURL *url = [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[[UIApplication sharedApplication] openURL:url];