iOS开发 - 第三方SDK之短信验证
2016-05-23 本文已影响1971人
小黑Swift
相信不少人开始遇到第三方库使用时候,一看第三方SDK名字那么高大上,就心理感觉很困难样子。还有心理怎么也会有少许抗拒的,因为感觉又要学习一大堆新知识,看一大堆文档来使用。
其实哪有什么新知识,只不过如同到了一个新地方,得习惯下新环境找到几个吃饭的地方,但是钱(语言)还是通用的。说不定开始说不喜欢不喜欢,不久爱得难舍难分。所以别被那么高大上的名字给吓唬了,其实也可说第三方不过是个我们实现某个目的外包。
第三方最好跟你本身粘合度不高,因为可能它破产了或者说要收费了干嘛了或者你遇到更好的,你可以随时更换其他。
下面来个例子:第三方短信验证 SDK
比如我们要在项目中实现用户注册时候短信验证,那么我们可以借助第三方来完成
下面【图1】实现方式是完全交给第三方处理,不过现在很多是第三方还要跟服务器搞在一块,比如有些 第三方把验证码发到服务器,APP再向服务器验证... 好处在于掌握一定的主动权
图11.看文档,加入SDK,增加依赖库
SMSSDK-iOS 2.0.0 短信SDK快速集成
2.文档中还是OC的,那么我们Swift要建立桥接头文件
方式一:快速创建-在项目中还没有引进入OC文件时候,首先创建OC文件会有提示,要不要创建桥接头文件,我可以利用此次机会,不过他同时创建了m和h两个文件,再删除m文件即可。
快速创建桥接头文件方式二:参考这位兄弟 http://www.jianshu.com/p/fe1bbf9eee84
接下来:
然后在 Bridging-Header.h 放入下面代码
#import <SMS_SDK/SMSSDK.h>
// command + B 编译下 没有问题就没有问题了
测试样板:
测试① 在AppDelegate.swift文件添加下面代码
//SMSSDK官网公共key
let smAppkey = "f3fc6baa9ac4"
let app_secrect = "7f3dedcb36d92deebcb373af921d635a"
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
SMSSDK.registerApp(smAppkey, withSecret: app_secrect)
return true
}
② ViewController.Swift
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var codeText: UITextField!
@IBOutlet weak var phoneNumberText: UITextField!
@IBOutlet weak var reCaptchaText: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
//发送手机号码
@IBAction func sendPhoneNumberClick() {
// 首先判断是否为一个手机号码,此忽略
// 其次判断自己数据库是否已存在,此忽略
// 第三方验证
SMSSDK.getVerificationCodeByMethod(SMSGetCodeMethodSMS, phoneNumber: phoneNumberText.text, zone: codeText.text, customIdentifier: nil) { (error) in
if error == nil {
print("获取验证码成功")
} else {
print("有错误:\(error)")
}
}
}
//判断验证号是否正确
@IBAction func reCaptchaClick() {
SMSSDK.commitVerificationCode(codeText.text, phoneNumber: phoneNumberText.text, zone: reCaptchaText.text) { (error) in
if error == nil {
print("验证成功")
} else {
print("验证失败")
}
}
}
}
此库未支持HTTPS ,所以要设置下 Http请求问题 ios9.0