国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Swift > 正文

Swift免費短信驗證碼實現及動態倒計時功能

2020-03-09 17:46:35
字體:
來源:轉載
供稿:網友

今天給大家帶來一個簡單的免費短信驗證碼實現demo,采用mob的短信驗證碼SDK,到目前為止還是免費的,只需要簡單的注冊--》添加個人應用--》獲取appkey集apSecret 即可實現。

具體怎么申請,添加個人應用這里就不累贅了,相信能搜索到本文的必然有能力完成上面的操作。

1、下載mob的免費短信驗證SDK,解壓后復制SMS_SDK到你的工程,因為此SDK采用OC編寫的,在與Swift結合時,需要添加橋接文件,具體操作如下:

右鍵你的Swift工程,新建一個OC文件,名字隨便起,這時會彈出提示你創建一個橋接文件,點擊是就OK了!在你的工程中會多出一個以工程名--Bridging-Header.h的文件,打開寫入下面的代碼:

#import <SMS_SDK/SMSSDK.h> 

當然,創建橋接文件的方法有很多種,會的就無需關注咯。

2、打開工程中的storyboard,創建一個電話號碼文本框、驗證碼文本框、獲取驗證碼按鈕、提交驗證按鈕。并對相關操作進行ViewController連線,如下圖:

swift,驗證碼倒計時

3、在AppDelegate.swift文件中的func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool中添加如下代碼:

SMSSDK.registerApp(你的appKey withSecret: 你的appSecret) 

4、編寫ViewController.swift,具體就看代碼吧,很簡單的一個小功能,請各位自行擴展吧。

// // ViewController.swift // Yundou // // Created by Slow on 16/1/2. // Copyright (c) 2016年 Ivan. All rights reserved. // import UIKit class ViewController: UIViewController {   @IBOutlet weak var getAuthCodeButton: UIButton!   //驗證碼文本框   @IBOutlet weak var authCodeText: UITextField!   //手機號碼文本框   @IBOutlet weak var phoneText: UITextField!   override func viewDidLoad() {     super.viewDidLoad()     // Do any additional setup after loading the view, typically from a nib.   }   override func didReceiveMemoryWarning() {     super.didReceiveMemoryWarning()     // Dispose of any resources that can be recreated.   }   //獲取驗證碼   @IBAction func getAuthCode(sender: UIButton) {     var phoneNum = phoneText.text     SMSSDK.getVerificationCodeByMethod(SMSGetCodeMethodSMS, phoneNumber:phoneNum, zone: "86",customIdentifier: nil,result: {(error: NSError!) ->Void in       if(error == nil){         NSLog("發送成功")         self.countDown(60)       }else{         NSLog("發送失敗!%@" , error)       }     })   }   //提交驗證碼   @IBAction func submitAuthCode(sender: UIButton) {     var authCode = authCodeText.text     var phoneNum = phoneText.text     var resultMessage = ""     SMSSDK.commitVerificationCode(authCode, phoneNumber: phoneNum, zone: "86" ,       result:{ (error: NSError!) -> Void in         if(error == nil){           resultMessage = "恭喜您,驗證成功!"           NSLog("驗證成功")         }else{           resultMessage = "很抱歉,驗證失??!"           NSLog("驗證失??!" , error)         }         let resultAlertView:UIAlertView = UIAlertView(title: "驗證結果", message: resultMessage, delegate: nil, cancelButtonTitle: "確定")         resultAlertView.show()     })   }   //驗證碼倒計時   func countDown(timeOut:Int){     //倒計時時間     var timeout = timeOut     var queue:dispatch_queue_t = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);     var _timer:dispatch_source_t = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue)     dispatch_source_set_timer(_timer, dispatch_walltime(nil, 0), 1*NSEC_PER_SEC, 0)     //每秒執行     dispatch_source_set_event_handler(_timer, { () -> Void in       if(timeout<=0){ //倒計時結束,關閉         dispatch_source_cancel(_timer);         dispatch_sync(dispatch_get_main_queue(), { () -> Void in           //設置界面的按鈕顯示 根據自己需求設置           self.getAuthCodeButton.setTitle("再次獲取", forState: UIControlState.Normal)         })       }else{//正在倒計時         var seconds = timeout % 60         var strTime = NSString.localizedStringWithFormat("%.2d", seconds)         dispatch_sync(dispatch_get_main_queue(), { () -> Void in //          NSLog("----%@", NSString.localizedStringWithFormat("%@S", strTime) as String)           UIView.beginAnimations(nil, context: nil)           UIView.setAnimationDuration(1)           //設置界面的按鈕顯示 根據自己需求設置           self.getAuthCodeButton.setTitle(NSString.localizedStringWithFormat("%@S", strTime) as String, forState: UIControlState.Normal)           UIView.commitAnimations()           self.getAuthCodeButton.userInteractionEnabled = false         })         timeout--;       }     })     dispatch_resume(_timer)   } } 

以上所述是小編給大家介紹的Swift免費短信驗證碼實現及動態倒計時功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 正蓝旗| 高安市| 普洱| 永春县| 新野县| 浦县| 江川县| 静宁县| 台前县| 海安县| 建阳市| 宾阳县| 荔波县| 兴安盟| 乌恰县| 盐池县| 冕宁县| 沂水县| 监利县| 泰安市| 平乡县| 兴化市| 松滋市| 儋州市| 邹平县| 白玉县| 兰西县| 三河市| 太仓市| 湖南省| 南昌市| 福建省| 宁阳县| 建平县| 绥德县| 洞口县| 金昌市| 德兴市| 德保县| 茂名市| 赤城县|