iOS 短信开发Tips(验证码,邀请好友)
2016-01-24 本文已影响1056人
奇董
今天项目正好用到短信邀请好友的功能,这边我就简单介绍一下,iOS一些常用的短信功能。
短信验证码
首先看你是个人开发,还是团队开发。我以前自己写东西玩的时候,短信验证功能是用的Bmob。Bmob是一个集成的云后台,如果你不懂后台开发,可以试试这个,上面的文档很齐全。
如果你公司的项目的话,这个时候肯定是有后台支持的。这个可以集成友盟,mob等等一堆平台的支持。
发送短信邀请(自定义短信)
当遇到自定义短信的时候,有两个选择。
1.后台推送
2.客户端发送
后台推送各大平台都是要钱滴,几分到几毛不等。这时候就看老板舍不舍的money(≧▽≦)/啦啦啦。后台做的事,我这边就不提了。
这边就介绍怎么客户端发送
1.最简单的方法就是直接跳到系统的短信系统发送。
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:[NSString stringWithFormat:@"sms://%@",self.people.phone]]];
这句话对于跳转跳转的系统的东西都是管用的。
openurl 可以做的事情有很多 可以打开系统其他应用
1.Map http://maps.google.com/maps?q=Shanghai
2.Email mailto://myname@google.com
3.Tel tel://10086
4.Msg sms://10086
我们应用中最常用的应该就是跳转到这是界面了。因为用户很多情况下会禁止应用访问隐私的一些东西(通讯录,短信等等)。我们要需要提醒用户打开,为了提高交互性。应该直接跳转到设置界面。
//ios8
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
如果想要跳转到具体的设置界面的话
这下面有两个传送们,可以去看看。
http://www.jianshu.com/p/19602f48309b
http://blog.csdn.net/likendsl/article/details/7553605
但跳转到系统应用返回就困难了,所以这种发短信的方式。不可取
2 利用系统的messageUI框架
#import <MessageUI/MessageUI.h>
跳转到程序内的短信界面
if ([MFMessageComposeViewController canSendText]) {
MFMessageComposeViewController *messageVC = [[MFMessageComposeViewController alloc] init];
messageVC.recipients = 这边填写要发送的短信好伐的数组;
messageVC.body = 短信的内容;
messageVC.messageComposeDelegate = self; //指定代理
[self presentViewController:messageVC animated:YES completion:nil];
} else {
[PublicModel showHUDWithInfo:self andInfo:@"设备不支持短信功能"];
}
发送完短信,回到刚才的界面。都是模态视图的跳转
#pragma mark MFmessageComposeViewControllerDelegate
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result {
if (result == MessageComposeResultCancelled) {
[controller dismissViewControllerAnimated:YES completion:nil];
} else if (result == MessageComposeResultFailed) {
[controller dismissViewControllerAnimated:YES completion:^{
// [PublicModel showHUDWithInfo:self andInfo:@"发送失败"];
}];
} else {
[controller dismissViewControllerAnimated:YES completion:^{
// [PublicModel showHUDWithInfo:self andInfo:@"发送成功"];
}];
}
}