wsift程序员iOS Developer

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

2016-05-23  本文已影响1971人  小黑Swift
相信不少人开始遇到第三方库使用时候,一看第三方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

上一篇下一篇

猜你喜欢

热点阅读