《托管模式介绍 - QQ空间-分享生活,留住感动.doc》由会员分享,可在线阅读,更多相关《托管模式介绍 - QQ空间-分享生活,留住感动.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、TLS 开发指南(iOS 版本)本文档主要描述如何集成 TLSSDK 到开发者的 iOS 应用中去,并完成注册、登录的流程。1.环境搭建本节主要介绍如何使用 Xcode 创建一个应用,并集成 TLSSDK。由于 TLSSDK 依赖IMSDK,这里假设用户已经了解如何集成 IMSDK,如有疑问,可参考 IMSDK 相关文档。1.1.获取 iOS SDKTLSSDK 以 framework 形式提供,可以从官网下载 iOS SDK:TLSSDK.framework为了方便开发者使用,我们 SDK 同时支持了 i386 x86_64 armv7 armv7s arm64 多个平台。开发者需要关注的是
2、 Headers 目录,该目录下包含了 TSLSDK 提供的所有接口,目前开发者只需要关注以下几个文件: 通用类接口:TLSErrInfo.h - 定义了 TLS 的错误信息,包含错误返回码、出错提示等Version.h - 定义了当前 SDK 的版本号TLSUserInfo.h - 定义了用户账号信息 账号类接口:TLSAccountHelper.h - 定义了注册相关的接口TLSSmsRegListener.h - 定义了注册相关的回调,开发者需要实现这些回调,以实现短信注册功能 登录类接口:TLSLoginHelper.h - 定义了登录相关的接口TLSSmsLoginListener.
3、h - 定义了登录相关的回调,开发者需要实现这些回调,以实现短信登录功能TLSRefreshTicketListener.h - 定义了刷新票据相关的回调,开发者需要实现这些回调,以实现刷新票据功能1.2.创建应用打开 xcode,新建工程:工程命名为 tlsdemo: 1.3.配置工程拷贝 TLSSDK.framwork、ImSDK.framework 到 tlsdemo 目录(由于 TLSSDK 依赖了ImSDK,因此要 ImSDK.framework 也加进来) 。选中 tlsdemo 的 Target,在 Build Phases 面板中的 Link Binary With Libra
4、ries 添加依赖库。需要添加的依赖库有:TLSSDK.framworkImSDK.frameworklibz.dylibCoreTelephony.frameworkSystemConfiguration.frameworklibstdc+.dyliblibstdc+.6.dyliblibsqlite3.dylib其中,除 TLSSDK.framwork、ImSDK.framework 外,其余均为系统内置库编译工程:以上步骤进行完后,编译工程,如果没有报错,恭喜你,集成 SDK 成功,可以进行下一步的功能开发了。2.基础流程介绍本节主要介绍 TLSSDK 的基础流程,包括注册流程、登录流程
5、及刷新票据流程。通过阅读本小节,能够帮助开发者在实际编码前,对 TLS 的整体实现流程有一定的了解。TLS 的注册及登录流程分别由以下两个类(TLSAccountHelper 和 TLSLoginHelper) ,以及若干回调实现,详细流程如下:2.1.注册流程TLSAccountHelper 与 TLSSmsRegListener 配合以实现注册功能,总体注册流程如下图:开 始输 入 手 机 号 请 求 验 证 码(TLSmsRegAskCode)是 否 收 到 短 信 重 新 请 求 验 证 码(TLSmsRegaskCode)提 交 验 证 码 进 行 验 证(TLSmsRegVrify
6、Code)是是 否 验 证 通 过确 认 注 册 账 号(TLSPwdRegComit)结 束是否否TLS 注册流程简述:用户提交手机号到后台请求注册,后台收到请求后会给用户下发短信验证码;用户收到短信验证码后提交给后台验证,验证通过即可完成注册流程。2.2.登录流程TLSLoginHelper 与 TLSSmsLoginListener 配合以实现登录功,总体登录流程如下图:开 始输 入 手 机 号 请 求 验 证 码(TLSmsLoginAskCode)是 否 收 到 短 信 重 新 请 求 验 证 码(TLSmsLoginReaskCode)提 交 验 证 码 进 行 验 证(TLSms
7、LoginVerifyCode)是是 否 验 证 通 过登 录(TLSmsLogin)结 束是 否否TLS 登录流程简述:用户输入手机号请求登录,后台收到请求后给用户手机下发短信验证码;用户收到短信验证码后提交给后台验证,验证通过即可成功登录。2.3.刷新票据流程为降低用户登录门槛,实现自动登录逻辑,SDK 提供了刷新票据功能,即通过刷新本地票据实现自动登录功能(不用短信验证码即可登录) ,总体流程如下图:开 始获 取 用 户 identifer(getLastUserIfo)是 否 需 要 登 录( nedLogin)换 票( TLSRefrshTicket)否结 束登 录 流 程是TLS
8、刷新票据流程简述:开发者先判断用户是否可以自动登录(调用 needLogin 接口) ,如果判断可以自动登录,则调用换票接口完成登录;否则需要重新走上一小节的登录流程。3.基础功能开发本节主要介绍如何在应用中调用 SDK 接口实现帐号注册、登录的基础功能。SDK 接口中,大部分与网络有关的操作,我们采用了异步的方式来实现,所有需要异步返回结果的接口都提供了 listener 回调参数。回调命名为 Listener,而不是 delegate,是为了和 Android SDK 接口命名统一。3.1.初始化 SDK在使用各种功能接口之前,需要对 SDK 进行初始化。一般注册和登录功能需要同时实现,因
9、此示例代码中会同时初始化(TLSAccountHelper 和 TLSLoginHelper) 。首先要引入相关头文件 #import #import 在工程的 AppDelegate 中的以下方法中,调用 SDK 初始化方法,实例代码如下。其中,TLS_SDK_APPID 和 TLS_SDK_ACCOUNT_TYPE 是开发者在腾讯云平台申请的业务 id 和帐号类型。关于如何申请,请参考接入文档。- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)laun
10、chOptions / 设置测试环境,可选TIMManager sharedInstance setEnv:1;/ 初始化 IMSDKTIMManager sharedInstance initSdk;/初始化登录 HelperTLSLoginHelper getInstanceinit:TLS_SDK_APPID andAccountType:TLS_SDK_ACCOUNT_TYPE andAppVer:“1.0.0.0“;/初始化帐号 HelperTLSAccountHelper getInstanceinit:TLS_SDK_APPID andAccountType:TLS_SDK_AC
11、COUNT_TYPE andAppVer:“1.0.0.0“;return YES;强烈注意:TLSSDK 依赖 IMSDK,因此需要先初始化 TIMManager。3.2.注册功能实现用户输入手机号注册,注册过程中会下发短信给用户手机,用户输入短信验证码提交验证通过后,注册成功。实现步骤及示例代码如下:步骤一、输入手机号码,请求短信验证码/ phoneNumStr 用户输入的手机号码,格式是 国家码- 手机号码,比如 86-186xxx/ regListener 注册回调,需要实现 TLSSmsRegListener 协议,不能为 nilTLSAccountHelper getInstanc
12、eTLSSmsRegAskCode:phoneNumStr andTLSSmsRegListener:regListener; 成功回调-(void)OnSmsRegAskCodeSuccess:(int)reaskDuration andExpireDuration:(int) expireDuration/* 请求下发短信成功,可以跳转到输入验证码进行校验的界面,同时可以开始倒计时, (reaskDuration ms 内不可以重发短信,如果在 expireDuration ms 之后仍然没有进行短信验证,则应该回到上一步,重新开始流程) ;在用户输入收到的短信验证码之后,可以调用 TLS
13、SmsRegVerifyCode 进行验证。*/步骤二、如果长时间没有收到短信验证码,重新请求短信验证码(一般是等倒计时结束,用户手动点击重新发送之后,触发此逻辑) ,示例代码如下:/ listener 可以传 nil,此时 listener 使用第一步设置的值TLSAccountHelper getInstanceTLSSmsRegReaskCode:nil;成功回调-(void)OnSmsRegReaskCodeSuccess:(int)reaskDuration andExpireDuration:(int) expireDuration/* 重新请求下发短信成功,可以跳转到输入验证码进
14、行校验的界面,并开始倒计时,(reaskDuration ms 内不可以再次请求重发,在 expireDuration ms 之后仍然没有进行短信验证,则应该回到第一步,重新开始流程) ;在用户输入收到的短信验证码之后,可以调用 TLSSmsRegVerifyCode 进行验证。*/步骤三、输入短信验证码,提交验证/ smsCodeText.text 短信验证码/ listener 可以传 nil,此时 listener 使用上一步设置的值TLSAccountHelper getInstanceTLSSmsRegVerifyCode:smsCodeText.text andTLSSmsRegL
15、istener:nil;成功回调- (void)OnSmsRegVerifyCodeSuccess/* 短信验证成功,接下来可以引导用户输入密码,然后调用 TLSSmsRegCommit 进行注册的最后一步*/步骤四、完成注册/ listener 可以传 nil,此时 listener 使用上一步设置的值TLSAccountHelper getInstanceTLSSmsRegCommit:nil;成功回调- (void)OnSmsRegCommitSuccess:(TLSUserInfo *)userInfo/* 最终注册成功,接下来可以引导用户进行短信登录了,登录流程请查看相应章节*/统一
16、的失败或超时回调- (void)OnSmsRegFail:(TLSErrInfo *)errInfo/* 短信注册过程中任意一步都可以到达这里,可以根据 errInfo 中 ErrCode, Title, Msg 给用户弹提示语,引导相关操作*/- (void)OnSmsRegTimeout:(TLSErrInfo *)errInfo/* 短信注册过程中任意一步都可以到达这里,顾名思义,网络超时,可能是用户网络环境不稳定,一般让用户重试即可*/3.3.登录功能实现用户通过短信验证码的方式进行登录。步骤如下:步骤一、输入手机号码,请求短信验证码/phoneNumStr 用户输入的手机号,格式是
17、国家码- 手机号码,比如 86-186xxx/self 短消登录回调 listener,需要实现 TLSSmsLoginListener 协议,不能为 nilTLSLoginHelper getInstance TLSSmsAskCode:phoneNumStr andTLSSmsLoginListener:self;成功回调- (void)OnSmsLoginAskCodeSuccess:(int)reaskDuration andExpireDuration:(int)expireDuration/* 请求下发短信成功,可以跳转到输入验证码进行校验的界面,同时可以开始倒计时, (reask
18、Duration ms 内不可以重发短信,如果在 expireDuration ms 之后仍然没有进行短信验证,则应该回到上一步,重新开始流程) ;在用户输入收到的短信验证码之后,可以调用 SmsLoginVerifyCode 进行验证。*/步骤二、如果长时间没有收到短信验证码,重新请求短信验证码(一般是等倒计时结束,用户手动点击重新发送之后,触发此逻辑) ,示例代码如下:/ listener 可以传 nil,此时 listener 使用上一步设置的值TLSLoginHelper getInstance TLSSmsReaskCode:nil;成功回调- (void)OnSmsLoginRea
19、skCodeSuccess:(int)reaskDuration andExpireDuration:(int)expireDuration/* 重新请求下发短信成功,可以跳转到输入验证码进行校验的界面,并开始倒计时,(reaskDuration ms 内不可以再次请求重发,在 expireDuration ms 之后仍然没有进行短信验证,则应该回到第一步,重新开始流程) ;在用户输入收到的短信验证码之后,可以调用 SmsLoginVerifyCode 进行验证。*/步骤三、输入短信验证码,提交验证/ smsCodeText.text 用户输入的短信验证码/ listener 可以传 nil,
20、此时 listener 使用上一步设置的值TLSLoginHelper getInstance TLSSmsVerifyCode:nil andCode:smsCodeText.text andTLSSmsLoginListener:nil;成功回调- (void)OnSmsLoginVerifyCodeSuccess/* 这时候仅仅是通过了短信验证,还需要调用登录接口 TLSSmsLogin 完成登录 */步骤四、提交登录请求/ smsLoginPhoneNo 用户输入的短信验证码/self 短消登录回调 listener,不能为 nilTLSLoginHelper getInstance TLSSmsLogin:smsLoginPhoneNo andTLSSmsLoginListener:self;成功回调