美文网首页wsift程序员iOS Developer
iOS开发 - 第三方SDK之短信验证

iOS开发 - 第三方SDK之短信验证

作者: 小黑Swift | 来源:发表于2016-05-23 15:51 被阅读1971次
    相信不少人开始遇到第三方库使用时候,一看第三方SDK名字那么高大上,就心理感觉很困难样子。还有心理怎么也会有少许抗拒的,因为感觉又要学习一大堆新知识,看一大堆文档来使用。

    其实哪有什么新知识,只不过如同到了一个新地方,得习惯下新环境找到几个吃饭的地方,但是钱(语言)还是通用的。说不定开始说不喜欢不喜欢,不久爱得难舍难分。所以别被那么高大上的名字给吓唬了,其实也可说第三方不过是个我们实现某个目的外包。
    第三方最好跟你本身粘合度不高,因为可能它破产了或者说要收费了干嘛了或者你遇到更好的,你可以随时更换其他。


    下面来个例子:第三方短信验证 SDK

    比如我们要在项目中实现用户注册时候短信验证,那么我们可以借助第三方来完成

    下面【图1】实现方式是完全交给第三方处理,不过现在很多是第三方还要跟服务器搞在一块,比如有些 第三方把验证码发到服务器,APP再向服务器验证... 好处在于掌握一定的主动权

    图1

    1.看文档,加入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

    相关文章

      网友评论

        本文标题:iOS开发 - 第三方SDK之短信验证

        本文链接:https://www.haomeiwen.com/subject/rmdarttx.html