123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- //
- // TXCommonHandler.h
- // ATAuthSDK
- //
- // Created by yangli on 15/03/2018.
- #import <Foundation/Foundation.h>
- #import "TXCustomModel.h"
- #import "PNSReporter.h"
- typedef NS_ENUM(NSInteger, PNSAuthType) {
- PNSAuthTypeVerifyToken = 1, //本机号码校验
- PNSAuthTypeLoginToken = 2 //一键登录
- };
- @interface TXCommonHandler : NSObject
- /**
- * 获取该类的单例实例对象
- * @return 单例实例对象
- */
- + (instancetype _Nonnull )sharedInstance;
- /**
- * 获取当前SDK版本号
- * @return 字符串,sdk版本号
- */
- - (NSString *_Nonnull)getVersion;
- /**
- * SDK鉴权,app生命周期内调用一次
- * @param info app对应的秘钥
- * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, msg:...},其他情况时"resultCode"值请参考PNSReturnCode
- */
- - (void)setAuthSDKInfo:(NSString * _Nonnull)info complete:(void(^_Nullable)(NSDictionary * _Nonnull resultDic))complete;
- /**
- * 检查当前环境是否支持一键登录或号码认证,resultDic 返回 PNSCodeSuccess 说明当前环境支持
- * @param authType 服务类型 PNSAuthTypeVerifyToken 本机号码校验流程,PNSAuthTypeLoginToken 一键登录流程
- * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, msg:...},其他情况时"resultCode"值请参考PNSReturnCode,只有成功回调才能保障后续接口调用
- */
- - (void)checkEnvAvailableWithAuthType:(PNSAuthType)authType complete:(void (^_Nullable)(NSDictionary * _Nullable resultDic))complete;
- /**
- * 加速获取本机号码校验token,防止调用 getVerifyTokenWithTimeout:complete: 获取token时间过长
- * @param timeout 接口超时时间,单位s,默认为3.0s
- * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, token:..., msg:...},其他情况时"resultCode"值请参考PNSReturnCode
- */
- - (void)accelerateVerifyWithTimeout:(NSTimeInterval)timeout complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete;
- /**
- * 获取本机号码校验Token
- * @param timeout 接口超时时间,单位s,默认为3.0s
- * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, token:..., msg:...},其他情况时"resultCode"值请参考PNSReturnCode
- */
- - (void)getVerifyTokenWithTimeout:(NSTimeInterval)timeout complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete;
- /**
- * 加速一键登录授权页弹起,防止调用 getLoginTokenWithTimeout:controller:model:complete: 等待弹起授权页时间过长
- * @param timeout 接口超时时间,单位s,默认为3.0s
- * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, msg:...},其他情况时"resultCode"值请参考PNSReturnCode
- */
- - (void)accelerateLoginPageWithTimeout:(NSTimeInterval)timeout complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete;
- /**
- * 获取一键登录Token,调用该接口首先会弹起授权页,点击授权页的登录按钮获取Token
- * @warning 注意的是,如果前面没有调用 accelerateLoginPageWithTimeout:complete: 接口,该接口内部会自动先帮我们调用,成功后才会弹起授权页,所以有一个明显的等待过程
- * @param timeout 接口超时时间,单位s,默认为3.0s
- * @param controller 唤起自定义授权页的容器,内部会对其进行验证,检查是否符合条件
- * @param model 自定义授权页面选项,可为nil,采用默认的授权页面,具体请参考TXCustomModel.h文件
- * @param complete 结果异步回调到主线程,"resultDic"里面的"resultCode"值请参考PNSReturnCode,如下:
- *
- * 授权页控件点击事件:700000(点击授权页返回按钮)、700001(点击切换其他登录方式)、
- * 700002(点击登录按钮事件,根据返回字典里面的 "isChecked"字段来区分check box是否被选中,只有被选中的时候内部才会去获取Token)、700003(点击check box事件)、700004(点击协议富文本文字)
- 接口回调其他事件:600001(授权页唤起成功)、600002(授权页唤起失败)、600000(成功获取Token)、600011(获取Token失败)、
- * 600015(获取Token超时)、600013(运营商维护升级,该功能不可用)、600014(运营商维护升级,该功能已达最大调用次数).....
- */
- - (void)getLoginTokenWithTimeout:(NSTimeInterval)timeout controller:(UIViewController *_Nonnull)controller model:(TXCustomModel *_Nullable)model complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete;
- /**
- * 此接口仅用于开发期间用于一键登录页面不同机型尺寸适配调试(可支持模拟器),非正式页面,手机掩码为0,不能正常登录,请开发者注意下
- * @param controller 唤起自定义授权页的容器,内部会对其进行验证,检查是否符合条件
- * @param model 自定义授权页面选项,可为nil,采用默认的授权页面,具体请参考TXCustomModel.h文件
- * @param complete 结果异步回调到主线程,"resultDic"里面的"resultCode"值请参考PNSReturnCode
- */
- - (void)debugLoginUIWithController:(UIViewController *_Nonnull)controller model:(TXCustomModel *_Nullable)model complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete;
- /**
- * 授权页弹起后,修改checkbox按钮选中状态,当checkout按钮隐藏时,设置不生效
- */
- - (void)setCheckboxIsChecked:(BOOL)isChecked;
- /**
- * 查询授权页checkbox是否勾选,YES:勾选,NO:未勾选
- */
- - (BOOL)queryCheckBoxIsChecked;
- /**
- * 授权页协议内容动画执行,注意:必须设置privacyAnimation属性,才会执行动画
- */
- - (void)privacyAnimationStart;
- /**
- * 授权页checkbox动画执行,注意:必须设置checkboxAnimation属性,才会执行动画
- */
- - (void)checkboxAnimationStart;
- /**
- * 手动隐藏一键登录获取登录Token之后的等待动画,默认为自动隐藏,当设置 TXCustomModel 实例 autoHideLoginLoading = NO 时, 可调用该方法手动隐藏
- */
- - (void)hideLoginLoading;
- /**
- * 注销授权页,建议用此方法,对于移动卡授权页的消失会清空一些数据
- * @param flag 是否添加动画
- * @param complete 成功返回
- */
- - (void)cancelLoginVCAnimated:(BOOL)flag complete:(void (^_Nullable)(void))complete;
- /**
- * 获取日志埋点相关控制对象
- */
- - (PNSReporter * _Nonnull)getReporter;
- /**
- * 关闭二次授权弹窗页
- */
- - (void)closePrivactAlertView;
- /**
- * 检查及准备调用环境,resultDic返回PNSCodeSuccess才能调用下面的功能接口
- * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, msg:...},其他情况时"resultCode"值请参考PNSReturnCode,只有成功回调才能保障后续接口调用
- */
- - (void)checkEnvAvailableWithComplete:(void (^_Nullable)(NSDictionary * _Nullable resultDic))complete DEPRECATED_MSG_ATTRIBUTE("Please use checkEnvAvailableWithAuthType:complete: instead");
- @end
|