相信不少人開始遇到第三方庫使用時(shí)候檬姥,一看第三方SDK名字那么高大上,就心理感覺很困難樣子粉怕。還有心理怎么也會(huì)有少許抗拒的健民,因?yàn)楦杏X又要學(xué)習(xí)一大堆新知識(shí),看一大堆文檔來使用贫贝。
其實(shí)哪有什么新知識(shí)秉犹,只不過如同到了一個(gè)新地方,得習(xí)慣下新環(huán)境找到幾個(gè)吃飯的地方稚晚,但是錢(語言)還是通用的崇堵。說不定開始說不喜歡不喜歡,不久愛得難舍難分蜈彼。所以別被那么高大上的名字給嚇唬了筑辨,其實(shí)也可說第三方不過是個(gè)我們實(shí)現(xiàn)某個(gè)目的外包。
第三方最好跟你本身粘合度不高幸逆,因?yàn)榭赡芩飘a(chǎn)了或者說要收費(fèi)了干嘛了或者你遇到更好的,你可以隨時(shí)更換其他暮现。
下面來個(gè)例子:第三方短信驗(yàn)證 SDK
比如我們要在項(xiàng)目中實(shí)現(xiàn)用戶注冊(cè)時(shí)候短信驗(yàn)證,那么我們可以借助第三方來完成
下面【圖1】實(shí)現(xiàn)方式是完全交給第三方處理还绘,不過現(xiàn)在很多是第三方還要跟服務(wù)器搞在一塊,比如有些 第三方把驗(yàn)證碼發(fā)到服務(wù)器栖袋,APP再向服務(wù)器驗(yàn)證... 好處在于掌握一定的主動(dòng)權(quán)
1.看文檔拍顷,加入SDK,增加依賴庫
SMSSDK-iOS 2.0.0 短信SDK快速集成
2.文檔中還是OC的塘幅,那么我們Swift要建立橋接頭文件
方式一:快速創(chuàng)建-在項(xiàng)目中還沒有引進(jìn)入OC文件時(shí)候昔案,首先創(chuàng)建OC文件會(huì)有提示,要不要?jiǎng)?chuàng)建橋接頭文件电媳,我可以利用此次機(jī)會(huì)踏揣,不過他同時(shí)創(chuàng)建了m和h兩個(gè)文件,再刪除m文件即可匾乓。
方式二:參考這位兄弟 http://www.reibang.com/p/fe1bbf9eee84
接下來:
然后在 Bridging-Header.h 放入下面代碼
#import <SMS_SDK/SMSSDK.h>
// command + B 編譯下 沒有問題就沒有問題了
測試樣板:
① 在AppDelegate.swift文件添加下面代碼
//SMSSDK官網(wǎng)公共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()
}
//發(fā)送手機(jī)號(hào)碼
@IBAction func sendPhoneNumberClick() {
// 首先判斷是否為一個(gè)手機(jī)號(hào)碼捞稿,此忽略
// 其次判斷自己數(shù)據(jù)庫是否已存在,此忽略
// 第三方驗(yàn)證
SMSSDK.getVerificationCodeByMethod(SMSGetCodeMethodSMS, phoneNumber: phoneNumberText.text, zone: codeText.text, customIdentifier: nil) { (error) in
if error == nil {
print("獲取驗(yàn)證碼成功")
} else {
print("有錯(cuò)誤:\(error)")
}
}
}
//判斷驗(yàn)證號(hào)是否正確
@IBAction func reCaptchaClick() {
SMSSDK.commitVerificationCode(codeText.text, phoneNumber: phoneNumberText.text, zone: reCaptchaText.text) { (error) in
if error == nil {
print("驗(yàn)證成功")
} else {
print("驗(yàn)證失敗")
}
}
}
}
此庫未支持HTTPS ,所以要設(shè)置下 Http請(qǐng)求問題 ios9.0