秒验 iOS 端集成指南
开发工具:Xcode
集成方式:手动导入 SDK 或者 Pod 集成
SDK 版本支持:SDK 支持 Xcode 9.1.0, iOS8.0+及以上版本
集成前准备
注册账号
使用秒验 SDK 之前,需要先在 MobTech 官网注册开发者账号,并获取 AppKey 和 AppSecret,详情可以点击查看创建应用流程
提交审核
一键登录是运营商提供的能力,在使用秒验 SDK 之前,您需要在工作台提交秒验审核,详情可以点击查看秒验审核流程
秒验 SDK 流程图
添加配置
下载 SDK 导入项目
(1)手动下载 SDK 引入
官网下载SDK,然后将下图中 SDK 文件夹拖入到工程中(若项目中集成过秒验 SDK,请将原来存在的 SDK 删除掉,再导入官网下载的 SDK)。
(2)CocoaPods 方式引入
按需在 Podfile 文件中添加命令
注意 如果 pod install 导入的版本不是最新版,则先执行 pod repo update 操作更新本地 repo 的内容,再重新 pod install
添加依赖库
必要
libc++.tbd
配置 Xcode 项目
Build Settings 中的 Other Linker Flags 添加”-ObjC”
配置 plist 文件 (MOBAppKey 和 MOBAppSecret 以及 https)
(1)在项目中的 info.plist 文件中添加键值对,键分别为 MOBAppKey 和 MOBAppSecret ,值为在之前在 MobTech 官网开发者后台申请的 AppKey 和 AppSecret:
(2)ATS 配置
目前运营商个别接口为 http 请求,对于全局禁用 Http 的项目,需要设置 Http 白名单。建议按以下方式配置 Info.plist:
(3)禁止上传设备信息 (2.0.6 版本更新)
取号过程发生失败的时候会默认收集当前错误信息上传帮助开发者准确定位错误信息, 若不想上传可在 plist 中配置 mobForbidden(默认为 NO) 为 YES
API 接口
回传用户隐私授权结果(uploadPrivacyPermissionStatus)
为保证您的 App 在集成 MobSDK 之后能够满足工信部相关合规要求,您应确保 App 安装首次冷启动且取得用户阅读您《隐私政策》授权之后,调用 MobSDK.uploadPrivacyPermissionStatus 回传隐私协议授权结果,反之,如果用户不同意您 App《隐私政策》授权,则不能调用 uploadPrivacyPermissionStatus 回传隐私协议授权结果,相关隐私声明请参考合规指南
示例代码 调用位置开发者可以自己指定,只需在使用 SDK 功能之前调用即可。
ocswift
预登录(preLogin)
接口描述:
方法说明:
用于提前获取运营商取号凭证,当预登录成功时,调用拉起授权页方法将立即拉起授权界面。建议在需要授权登录前提前调用此方法
可以提前获知当前用户的手机网络环境是否符合一键登录的使用条件,成功后将得到用于一键登录使用的临时凭证, 默认的凭证有效期 60s(电信)/30min(联通)/60min(移动)。
示例代码
成功返回示例
参数说明:
resultDic : {“operatorName” : “中国移动”} // 可能返回 中国移动、中国联通、中国电信. error : error 为 nil,即为预取号成功.
拉起授权页+一键登录(openAuthPageWithModel)
接口描述:
方法说明:
若已经提前预取号成功,SDK 将直接拉起授权页。否则将先在 SDK 内部进行预取号,成功后拉起授权页
**
uiConfigure :
**
授权页配 SVSDKHyUIConfigure
uiConfigure.currentViewController 必传
要修改授权页自带控件的样式和添加自定义控件等,请在代理方法中自行设置
授权页将采用系统模态弹出方式。由于系统 present 机制问题,当 currentViewController 非最上层 vc 时,present 将无效且 completion 无回调,请尝试使用 currentViewController 测试 present 任一 vc 看是否可以正常弹出
**
openAuthPageListener :
**
拉起授权页回调
回调队列 main_queue
拉起成功失败均有回调,error 为 nil 即为成功
**
cancelAuthPageListener :
**
拉起授权页后,SDK 自带的返回/关闭按钮回调
回调队列 main_queue
点击内置的取消、返回按钮,sdk 将自动关闭授权页
取消、返回等操作,sdk 均视为失败,故此回调 resultDic=nil,error!=nil
**
oneKeyLoginListener :
**
一键登录点击取 token 回调
回调队列 global_queue
不包含 checkBox 未勾选事件
示例代码
文档最后提供了多中情景的自定义示例和说明,可供参考
简洁方式,快速调起常规界面:
-(void)openAuthPageButtonClick:(UIButton *)button{
}
成功返回示例
响应参数说明:
error : error 为 nil,即为登录成功.
resultDic 为字典类型,登录成功时返回
参数名
类型
字段含义
说明
opToken
String
运营商 token
运营商授权码,默认时效 1 分钟
operator
String
运营商类型
CMCC (移动)、CTCC (电信)、CUCC(联通)
token
String
SDK token
SecVerify 授权码
置换手机号
SDK 只返回 token,真实手机号需使用 token 单独调接口获得。开发者需自行调用置换手机号接口,此接口需要开发者调用由接入方服务端对接秒验服务端生成的接口,上线前的调试阶段可以直接使用示例 Demo 中的接口
注意事项
1. 免密登录能力必须经过运营商网关取号,因此必须在手机打开移动蜂窝网络的前提下才会成功。
2. 必须先预取号成功才可以登录。
3. 登录方法必须传入 model,model 中必须传入当前控制器。
4. 登录成功使用返回的两个 token 和运营商类型,向服务端请求手机号等信息。 可参考服务端接入文档
网络取号时候请务必开启手机流量:
1. 电信支持 4G,5G 网络取号
2. 移动, 联通支持 5G,4G, 3G, 2G 网络取号但在非 5G,4G 网络情况下容易取号失败
针对双卡双待手机只取当前流量卡号
注意:接到信安部要求, 以后一键登录的协议勾选框必须有且默认非勾选状态, 充分体现是由用户主动授权才使用的
使用 SDK
重要提示
v3.0.2 开始,标准版使用 SVSDKHyVerify 类作为 sdk 主类,与之相关的头文件有:
1.授权页配置类 --SVSDKHyUIConfigure
2.回调信息获取类--SVSDKHyProtocolUserInfo
3.引用头文件方式
另外 v3.0.2 开始,三网同统一使用
授权页 vc 类 --SVSDKVerifyOperationViewController
授权页 nav 类 --SVSDKVerifyOperationNavigationController
授权页协议页类 --SVSDKWebCarouselViewController
授权页协议页 nav 类(协议页 present 时使用)--SVSDKWebCarouselNavigationController
如之前接入代码使用过字符串类名匹配的,如 SVOperationViewController、SVBaseWebViewVC、ZUOAuthViewController、UAAuthViewController、UANavigationController、EAccountAuthenticateViewController、EAccountOPSWebViewController 的,建议移除相关代码
评论