iOS开发IOS特技UI

iOS 短信开发Tips(验证码,邀请好友)

2016-01-24  本文已影响1056人  奇董

今天项目正好用到短信邀请好友的功能,这边我就简单介绍一下,iOS一些常用的短信功能。

短信验证码

首先看你是个人开发,还是团队开发。我以前自己写东西玩的时候,短信验证功能是用的Bmob。Bmob是一个集成的云后台,如果你不懂后台开发,可以试试这个,上面的文档很齐全。

传送门:http://www.bmob.cn/

如果你公司的项目的话,这个时候肯定是有后台支持的。这个可以集成友盟,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:@"发送成功"];
        }];
    }
   
    
}
上一篇下一篇

猜你喜欢

热点阅读