iOS之短信认证
短信验证
现在很多的短信验证平台,我们比较常用的有移动开发者服务平台
根据短信验证文档来集成
1. 找到iOS短信验证的集成开发文档
2. 下载SDK和Demo目录结构
3. 运行Demo
4. 写自己的测试Demo按照文档一步步操作即可.
1. 创建项目
2. 导入SVProgressHUD和SMS_SDK
3. 添加依赖库文件
- 必要:
libicucore.dylib - libz.dylib
- MessageUI.framework
- javascriptcore.framework
- libstdc++.dylib
- 可选:
AddressBook.framework (通讯录功能需要) - AddressBookUI.framework(通讯录功能需要)
3. 在info.plist文件中添加,设置使用不安全网络
NSAppTransportSecurity 类型Dictionary- NSAllowsArbitraryLoads = YES 类型 BooL
4. 添加初始化代码- 在appDelegate 添加
#import <SMS_SDK/SMSSDK.h>
和
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {- // 注册短信验证
- [SMSSDK registerApp:appKey withSecret:appSecret];
- return YES;
- }
appKey 和 appSecret的获取:- 到Mob官网注册成为Mob开发者;
- 到应用管理后台新建应用。
- 创建获取验证码的按钮,或者是在自己已有的界面的按钮事件里调用获取验证码的方法
- (IBAction)verifyVoice { - NSString *phoneNumber = self.phoneNumTextField.text;
- // 获取语音验证码
- [SMSSDK getVerificationCodeByMethod:SMSGetCodeMethodVoice phoneNumber:phoneNumber zone:@"86" customIdentifier:nil result:^(NSError *error) {
- //注意区号(zone)和手机号码(phoneNumber)前面都不要加“+”号,有的开发者喜欢这样写,@“+86”,这种是错误的写法
- if (error) {
- NSLog(@"%@",error);
- [SVProgressHUD showErrorWithStatus:@"请重新获取验证码"];
- }
- }];
- }
- 创建提交验证码的按钮,或者是在自己已有的界面的按钮事件里调用提交验证码的方法
// 验证 - [SMSSDK commitVerificationCode:self.verifyTextField.text phoneNumber:self.phoneNumTextField.text zone:@"86" result:^(NSError *error) {
- if (error) {
- NSLog(@"%@",error);
- [SVProgressHUD showErrorWithStatus:@"验证失败!"];
- }else{
- [SVProgressHUD showSuccessWithStatus:@"验证成功!"];
- }
- }];
- 注意: 现在运营商的限制:同一个号码12小时发送不能超过5条,24小时不超过10条