iOS客户端Demo体验

本文为您介绍短信认证功能Demo的运行步骤及示例代码,帮助您快速了解短信认证功能iOS客户端SDK集成的详细接入步骤及用法,请参见短信认证iOS客户端接入

步骤一:下载SDK

登录号码认证产品控制台,在概览页面右侧API&SDK区域,单击立即下载,进入API&SDK页面,根据页面提示下载并解压对应SDK。

步骤二:替换方案号

请在短信认证方案管理页面创建认证方案。SDK解压后获取Demo,找到ViewController.m文件,请将<#SceneCode#>替换为您的方案号。

21

步骤三:设置参数

找到ViewController.m,将updateTokenWithVerifyCodeManager:回调方法的参数设置为您的信息。如:<#AccessKeyId#><#AccessKeySecret#><#sts token#><#biz token#><#expired time mills#>等。

22

示例代码

初始化示例对象

 self.verifyCodeManager = [[SmsVerifyCodeManager alloc] initWithSceneCode:@"xxx"];

设置代理

[self.verifyCodeManager setTokenUpdateDelegate:self];

监听回调

- (SmsTokens *)updateTokenWithVerifyCodeManager:(SmsVerifyCodeManager *)verifyCodeManager {
    /**
     注:这里需要发送网络请求从服务端获取相关参数,但是该方法需要同步返回结果,所以需要自己用信号量做下同步
        这里属于私有线程,所有放心做同步,不会卡顿主线程
     
     示例:
     
     SmsTokens *tokens = [[SmsTokens alloc] init];
     dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
     [HttpRequestUtils requestTokensWithParameters:<#请求参数#>
                                          complete:^(id response) {
         tokens.accessKeyId = <#AccessKeyId#>;
         tokens.accessKeySecret = <#AccessKeySecret#>;
         tokens.stsToken = <#sts token#>;
         tokens.bizToken = <#biz token#>;
         tokens.expiredTimeMills = <#expired time mills#>;
         dispatch_semaphore_signal(semaphore);
     }];
     dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
     return tokens;
     */
    
    SmsTokens *tokens = [[SmsTokens alloc] init];
    tokens.accessKeyId = @"xx";
    tokens.accessKeySecret = @"xx";
    tokens.stsToken = @"xx";
    tokens.bizToken = @"xx";
    tokens.expiredTimeMills = 123;
    return tokens;
}

获取Token

[self.verifyCodeManager sendVerifyCodeWithTimeout:10.0
                                          countryCode:86
                                          phoneNumber:phoneNumber
                                             complete:^(SmsSendCodeResult * _Nonnull result) {
        [ws.loginView stopGetCodeCountdown];
        NSLog(@"requestId = %@, code = %@, msg = %@, smsVerifyToken = %@, failedResponseData = %@", result.requestId, result.code, result.msg, result.smsVerifyToken, result.failedResponseData);
    }];