• MobTech SMSSDK iOS端快速集成指南


    开发工具:Xcode
    集成方式:手动导入SDK或者Pod集成
    SDK版本支持:SDK支持Xcode 9.1.0, iOS8.0+及以上版本

    集成前准备

    注册账号使用SMSSDK之前,您需要在MobTech官网注册开发者账号,添加应用并获取Mob提供的AppKey和AppSecret,详情可以点击查看注册流程

    SMSSDK流程图
    图片

    添加配置

    下载SDK导入项目
    (1)手动下载SDK引入
    点击 链接 下载最新版SDK,解压后得到以下文件结构:
    图片

    将下图中红色框标记的文件夹(包含MOBFoundation.framework 和 SMS_SDK.framework)拖入到工程中
    图片

    确认勾选,点击finish完成导入
    图片

    (2)CocoaPods方式引入
    通过 CocoaPods进行安装,只需在 Podfile文件中添加:
    pod 'mob_smssdk'
    添加之后执行 pod install / pod update 命令即可。

    添加依赖库
    图片
    必要:

    • libz.tbd
    • libicucore.tbd
    • MessageUI.framework
    • JavaScriptCore.framework
    • libc++.tbd

    注意:在XCode7上面运行报错的话,还需要增加这几个依赖库

    • SystemConfiguration.framework
    • CoreTelephony.framework
    • AdSupport.framework
    接口调用

    回传用户隐私授权结果(uploadPrivacyPermissionStatus)
    为保证您的App在集成MobSDK之后能够满足工信部相关合规要求,您应确保App安装首次冷启动且取得用户阅读您《隐私政策》授权之后,调用Mob提交到的隐私协议回传函数uploadPrivacyPermissionStatus回传隐私协议授权结果。
    反之,如果用户不同意您App《隐私政策》授权,则不能调用uploadPrivacyPermissionStatus回传隐私协议授权结果。相关隐私声明请参考这个链接合规指南

    /**
     上传隐私协议授权状态
     @param isAgree 是否同意(用户授权后的结果)
     @param OnResult 执行回调结果,可为nil (注意业务逻辑不要依赖于这个success结果,建议业务逻辑在调用这个接口之后来写)
    
     */
    + (void)uploadPrivacyPermissionStatus:(BOOL)isAgree
                                                     onResult:(void (^_Nullable)(BOOL success))handler;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    示例代码

    #import 
    [MobSDK uploadPrivacyPermissionStatus:YES onResult:^(BOOL success) {
    }];
    
    • 1
    • 2
    • 3

    请求短信验证码(getVerificationCodeByMethod)

    /**
     *  @from                    v3.1.0
     *  @brief                   获取验证码(Get verification code)
     *
     *  @param method            获取验证码的方法(The method of getting verificationCode)
     *  @param phoneNumber       电话号码(The phone number)
     *  @param zone              区域号,不要加"+"号(Area code)
     *  @param tmpCode           模板id(template id)
     *  @param result            请求结果回调(Results of the request)
     */
    + (void) getVerificationCodeByMethod:(SMSGetCodeMethod)method
                                          phoneNumber:(NSString *)phoneNumber
                                                         zone:(NSString *)zone
                                                   template:(NSString *)tmpCode
                                                        result:(SMSGetCodeResultHandler)result;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    示例代码

    #import 
      //template参数不能乱填,没有可以先传""或者nil
      [SMSSDK getVerificationCodeByMethod:SMSGetCodeMethodSMS phoneNumber:@"XXXXXXXXXXX" zone:@"86" template:@"" result:^(NSError *error) {
            if (!error)
            {
                // 请求成功
            }
            else
            {
                // error
            }
        }];
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    注: 模板id在官网后台 SMSSDK产品下的短信模版里面添加(需要申请过自定义短信签名的应用才能添加短信模板)
    图片

    提交验证码验证(commitVerificationCode)

    /**
     * @from                    v1.1.1
     * @brief                   提交验证码(Commit the verification code)
     *
     * @param code              验证码(Verification code)
     * @param phoneNumber       电话号码(The phone number)
     * @param zone              区域号,不要加"+"号(Area code)
     * @param result            请求结果回调(Results of the request)
     */
    + (void) commitVerificationCode:(NSString *)code
                                phoneNumber:(NSString *)phoneNumber
                                               zone:(NSString *)zone
                                              result:(SMSCommitCodeResultHandler)result;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    示例代码

    [SMSSDK commitVerificationCode:@"XXXX" phoneNumber:@"XXXXXXXXXXX" zone:@"86"result:^(NSError *error) {
            if (!error)
            {
                // 验证成功
            }
            else
            {
                // error
            }
        }];
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    注意:必须要自己重新自定义签名,默认签名仅用于测试,不保证到达率,上线前请务必申请自定义签名使用

  • 相关阅读:
    Socket网络编程(一)——网络通信入门&基本概念
    day54,ARM day1:计算机相关理论和ARM相关内容
    【机器学习】Support Vertor Machine 支持向量机算法详解 + 数学公式推导 + Python代码实战
    LeetCode Cookbook 数组习题(3)
    十六、java 中常见日期格式的设置
    不敲代码就能搭建个人博客?快解析内网穿透来助力
    【MongoDB】Ubuntu22.04 下安装 MongoDB | 用户权限认证 | skynet.db.mongo 模块使用
    【数据结构面试题】栈与队列的相互实现
    SpringBoot整合RabbitMQ实战附加死信交换机
    第2章 Elasticsearch入门
  • 原文地址:https://blog.csdn.net/apkkkk/article/details/126637935