TXCommonHandler.h 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. //
  2. // TXCommonHandler.h
  3. // ATAuthSDK
  4. //
  5. // Created by yangli on 15/03/2018.
  6. #import <Foundation/Foundation.h>
  7. #import "TXCustomModel.h"
  8. #import "PNSReporter.h"
  9. typedef NS_ENUM(NSInteger, PNSAuthType) {
  10. PNSAuthTypeVerifyToken = 1, //本机号码校验
  11. PNSAuthTypeLoginToken = 2 //一键登录
  12. };
  13. @interface TXCommonHandler : NSObject
  14. /**
  15. * 获取该类的单例实例对象
  16. * @return 单例实例对象
  17. */
  18. + (instancetype _Nonnull )sharedInstance;
  19. /**
  20. * 获取当前SDK版本号
  21. * @return 字符串,sdk版本号
  22. */
  23. - (NSString *_Nonnull)getVersion;
  24. /**
  25. * SDK鉴权,app生命周期内调用一次
  26. * @param info app对应的秘钥
  27. * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, msg:...},其他情况时"resultCode"值请参考PNSReturnCode
  28. */
  29. - (void)setAuthSDKInfo:(NSString * _Nonnull)info complete:(void(^_Nullable)(NSDictionary * _Nonnull resultDic))complete;
  30. /**
  31. * 检查当前环境是否支持一键登录或号码认证,resultDic 返回 PNSCodeSuccess 说明当前环境支持
  32. * @param authType 服务类型 PNSAuthTypeVerifyToken 本机号码校验流程,PNSAuthTypeLoginToken 一键登录流程
  33. * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, msg:...},其他情况时"resultCode"值请参考PNSReturnCode,只有成功回调才能保障后续接口调用
  34. */
  35. - (void)checkEnvAvailableWithAuthType:(PNSAuthType)authType complete:(void (^_Nullable)(NSDictionary * _Nullable resultDic))complete;
  36. /**
  37. * 加速获取本机号码校验token,防止调用 getVerifyTokenWithTimeout:complete: 获取token时间过长
  38. * @param timeout 接口超时时间,单位s,默认为3.0s
  39. * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, token:..., msg:...},其他情况时"resultCode"值请参考PNSReturnCode
  40. */
  41. - (void)accelerateVerifyWithTimeout:(NSTimeInterval)timeout complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete;
  42. /**
  43. * 获取本机号码校验Token
  44. * @param timeout 接口超时时间,单位s,默认为3.0s
  45. * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, token:..., msg:...},其他情况时"resultCode"值请参考PNSReturnCode
  46. */
  47. - (void)getVerifyTokenWithTimeout:(NSTimeInterval)timeout complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete;
  48. /**
  49. * 加速一键登录授权页弹起,防止调用 getLoginTokenWithTimeout:controller:model:complete: 等待弹起授权页时间过长
  50. * @param timeout 接口超时时间,单位s,默认为3.0s
  51. * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, msg:...},其他情况时"resultCode"值请参考PNSReturnCode
  52. */
  53. - (void)accelerateLoginPageWithTimeout:(NSTimeInterval)timeout complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete;
  54. /**
  55. * 获取一键登录Token,调用该接口首先会弹起授权页,点击授权页的登录按钮获取Token
  56. * @warning 注意的是,如果前面没有调用 accelerateLoginPageWithTimeout:complete: 接口,该接口内部会自动先帮我们调用,成功后才会弹起授权页,所以有一个明显的等待过程
  57. * @param timeout 接口超时时间,单位s,默认为3.0s
  58. * @param controller 唤起自定义授权页的容器,内部会对其进行验证,检查是否符合条件
  59. * @param model 自定义授权页面选项,可为nil,采用默认的授权页面,具体请参考TXCustomModel.h文件
  60. * @param complete 结果异步回调到主线程,"resultDic"里面的"resultCode"值请参考PNSReturnCode,如下:
  61. *
  62. * 授权页控件点击事件:700000(点击授权页返回按钮)、700001(点击切换其他登录方式)、
  63. * 700002(点击登录按钮事件,根据返回字典里面的 "isChecked"字段来区分check box是否被选中,只有被选中的时候内部才会去获取Token)、700003(点击check box事件)、700004(点击协议富文本文字)
  64. 接口回调其他事件:600001(授权页唤起成功)、600002(授权页唤起失败)、600000(成功获取Token)、600011(获取Token失败)、
  65. * 600015(获取Token超时)、600013(运营商维护升级,该功能不可用)、600014(运营商维护升级,该功能已达最大调用次数).....
  66. */
  67. - (void)getLoginTokenWithTimeout:(NSTimeInterval)timeout controller:(UIViewController *_Nonnull)controller model:(TXCustomModel *_Nullable)model complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete;
  68. /**
  69. * 此接口仅用于开发期间用于一键登录页面不同机型尺寸适配调试(可支持模拟器),非正式页面,手机掩码为0,不能正常登录,请开发者注意下
  70. * @param controller 唤起自定义授权页的容器,内部会对其进行验证,检查是否符合条件
  71. * @param model 自定义授权页面选项,可为nil,采用默认的授权页面,具体请参考TXCustomModel.h文件
  72. * @param complete 结果异步回调到主线程,"resultDic"里面的"resultCode"值请参考PNSReturnCode
  73. */
  74. - (void)debugLoginUIWithController:(UIViewController *_Nonnull)controller model:(TXCustomModel *_Nullable)model complete:(void (^_Nullable)(NSDictionary * _Nonnull resultDic))complete;
  75. /**
  76. * 授权页弹起后,修改checkbox按钮选中状态,当checkout按钮隐藏时,设置不生效
  77. */
  78. - (void)setCheckboxIsChecked:(BOOL)isChecked;
  79. /**
  80. * 查询授权页checkbox是否勾选,YES:勾选,NO:未勾选
  81. */
  82. - (BOOL)queryCheckBoxIsChecked;
  83. /**
  84. * 授权页协议内容动画执行,注意:必须设置privacyAnimation属性,才会执行动画
  85. */
  86. - (void)privacyAnimationStart;
  87. /**
  88. * 授权页checkbox动画执行,注意:必须设置checkboxAnimation属性,才会执行动画
  89. */
  90. - (void)checkboxAnimationStart;
  91. /**
  92. * 手动隐藏一键登录获取登录Token之后的等待动画,默认为自动隐藏,当设置 TXCustomModel 实例 autoHideLoginLoading = NO 时, 可调用该方法手动隐藏
  93. */
  94. - (void)hideLoginLoading;
  95. /**
  96. * 注销授权页,建议用此方法,对于移动卡授权页的消失会清空一些数据
  97. * @param flag 是否添加动画
  98. * @param complete 成功返回
  99. */
  100. - (void)cancelLoginVCAnimated:(BOOL)flag complete:(void (^_Nullable)(void))complete;
  101. /**
  102. * 获取日志埋点相关控制对象
  103. */
  104. - (PNSReporter * _Nonnull)getReporter;
  105. /**
  106. * 关闭二次授权弹窗页
  107. */
  108. - (void)closePrivactAlertView;
  109. /**
  110. * 检查及准备调用环境,resultDic返回PNSCodeSuccess才能调用下面的功能接口
  111. * @param complete 结果异步回调到主线程,成功时resultDic=@{resultCode:600000, msg:...},其他情况时"resultCode"值请参考PNSReturnCode,只有成功回调才能保障后续接口调用
  112. */
  113. - (void)checkEnvAvailableWithComplete:(void (^_Nullable)(NSDictionary * _Nullable resultDic))complete DEPRECATED_MSG_ATTRIBUTE("Please use checkEnvAvailableWithAuthType:complete: instead");
  114. @end