cdts/xdts-ios 3/Pods/GYSDK/GeYanSdk.framework/Headers/GeYanSdk.h
2023-07-27 09:20:00 +08:00

338 lines
9.9 KiB
Objective-C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// GySdk.h
// GySdkLib
//
// Created by admin on 2017/4/21.
// Copyright © 2017年 getui. All rights reserved.
//
// GySdk-Version: 2.2.0.0
#import "GyCheckModel.h"
#import "GyAuthViewModel.h"
#import "GyOneLoginPro.h"
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
/**
* 注册接口回调
*
* @param isSuccess 成功标志位
* @param error 错误信息
*/
typedef void (^GyCallback)(BOOL isSuccess, NSError *_Nullable error, NSString *_Nullable gyUid);
/**
* 验证接口回调
*
* @param verifyDictionary 返回调用结果信息
*/
typedef void (^GyVerifyCallback)(NSDictionary *_Nullable verifyDictionary);
/**
* 验证码验证接口回调
*
* @param smsVerifyDictionary 短信验证结果信息
*/
typedef void (^GySmsVerifyCallback)(NSDictionary *_Nullable smsVerifyDictionary);
/**
* 准备弹出动画窗口回调,用于智能无感验证失败后,准备弹出动画窗口前的回调处理。
*
*/
typedef void (^GyReadyAnimationCallback)(void);
/**
* 验证方式
*/
typedef NS_ENUM(NSUInteger, GyVerifyType) {
/**
* Cloud + Sms 验证
*/
GyVerifyTypeCloudSms,
/**
* Cloud 验证
*/
GyVerifyTypeCloud,
/**
* Sms 验证
*/
GyVerifyTypeSms,
};
@interface GeYanSdk : NSObject
+ (void)setOnlyUseOneLogin:(BOOL)onlyUseOL;
+ (void)setUseStrictMode:(BOOL)strictMode;
/**
* 初始化个验 SDK
* 任意情况初始化,若初始化失败,会在下一次接口请求时重试注册
* @param aAppId appid
*/
+ (void)startWithAppId:(NSString *_Nonnull)aAppId withCallback:(GyCallback _Nonnull)callback;
/**
* 设置IDFA
*
* SDK-2.0.6.0+
*
* @param idfa idfa
*/
+ (void)setIDFA:(NSString *_Nonnull)idfa;
/**
* 初始化SDK
* 适用于首次安装初始化,需要等待网络授权后再进行注册的情况
* @param aAppId 您申请的APPID
* @param timeout 等待授权超时时间,单位秒
* @param callback 初始化结果回调
*/
+ (void)startWithAppId:(NSString *_Nonnull)aAppId withTimeout:(NSTimeInterval)timeout withCallback:(GyCallback _Nonnull)callback;
/**
* 云验证接口
*
* @param type 验证方式
* @param pnMD5 手机号md5值,32位小写
* @param smsTemplateId 自定义短信模板 id申请 AppId 时配置
* @param callback 验证接口回调
*/
+ (void)verifyForType:(GyVerifyType)type withPnMD5:(NSString *_Nonnull)pnMD5 withSmsTemplateId:(NSString *_Nonnull)smsTemplateId withCallback:(GyVerifyCallback _Nonnull)callback;
/**
* 短信校验接口
*
* @param code 短信验证码
* @param pnMD5 手机号md5值,32位小写
* @param callback 通用接口回调
*/
+ (void)smsVerifyCode:(NSString *_Nonnull)code withPnMD5:(NSString *_Nullable)pnMD5 withCallback:(GySmsVerifyCallback _Nonnull)callback;
/**
* 注册保护接口
*
* @param checkModel 校验模型
* @param callback 通用接口回调
*/
+ (void)checkRegister:(GyCheckModel *_Nonnull)checkModel withCallback:(GyVerifyCallback _Nonnull)callback;
/**
* 登录保护接口
*
* @param checkModel 校验模型
* @param callback 通用接口回调
*/
+ (void)checkLogin:(GyCheckModel *_Nonnull)checkModel withCallback:(GyVerifyCallback _Nonnull)callback;
/**
* 智能无感验证接口
* @param pnMD5 MD5后的手机号码
* @param accountId accountId
* @param businessId 业务businessId
* @param showLoadingView 是否显示动画
* @param readyAnimationCallback 动画回调
* @param callback 通用接口回调
*/
+ (void)nonSenseCaptcha:(NSString *_Nonnull)pnMD5
accountId:(NSString *_Nonnull)accountId
businessId:(NSString *_Nonnull)businessId
isShowLoadingView:(BOOL)showLoadingView
readyAnimation:(GyReadyAnimationCallback _Nonnull)readyAnimationCallback
completeCallback:(GyVerifyCallback _Nonnull)callback;
/**
* 动画验证接口
* @param businessId 业务ID
* @param showLoadingView 是否显示动画
* @param readyAnimationCallback 动画回调
* @param callback 通用接口回调
*/
+ (void)startAnimationCaptcha:(NSString *_Nonnull)businessId
isShowLoadingView:(BOOL)showLoadingView
isReadyAnimation:(GyReadyAnimationCallback _Nonnull)readyAnimationCallback
completeCallback:(GyVerifyCallback _Nonnull)callback;
#pragma mark 一键登录功能, 包括设置预取号超时时间/预取号/登陆/关闭登陆页面等功能
/**
* 设置一键登录预取号阶段的超时时间
* @param timeout 单位秒
*/
+ (void)setEloginTimeout:(NSTimeInterval)timeout;
/**
* 预登陆,若成功,则可以调用一键登录接口,打开登录页面
* @param callback 通用接口回调
* {
* code = 30000; // NSNumber, 非30000为失败的状态码
* processID = 47dab9b7c26629cd9bc117f88e2f9233; // NSString, 流水号
* operatorType = 4; // NSString, 操作类型
* errorCode = "-30003", // NSString, 运营商返回的错误码
* msg = "\U83b7\U53d6accessCode\U6210\U529f"; // NSString, 运营商返回的描述消息
* metadata = {}; // NSDictionary, 失败时, 运营商的响应内容。
* }
* 其中中国移动和中国电信有效期为 1 小时,中国联通为 10 分钟。
*/
+ (void)preGetToken:(GyVerifyCallback _Nonnull)callback;
/**
* 一键登录
* @param controller 当前viewController
* @param model GYAuthViewModel
* @param callback 通用接口回调
* @discussion
* {
* code = 30000; // NSNumber, 非30000为失败的状态码
* processID = 47dab9b7c26629cd9bc117f88e2f9233; // NSString, 流水号
* operatorType = 4; // NSString, 操作类型
* errorCode = "-30003", // NSString, 失败时,运营商返回的错误码
* msg = "\U83b7\U53d6accessCode\U6210\U529f"; // NSString, 描述消息
* metadata = {}; // NSDictionary, 失败时, 运营商的响应内容。
* token = "xxx", //NSString, 登陆成功返回的用户授权凭证信息,可以用于在服务端获取完整手机号码
* expiredTime: 155555555555, //NSInteger,成功时, token有效期
* pn: "133****3333", //NSString,成功时, 脱敏7位手机号码
* }
* @discussion
* token 有效期:中国移动的有效期为 2 分钟,中国联通的为 30 分钟,中国电信的为 30 天。
*/
+ (void)oneTapLogin:(UIViewController *_Nonnull)controller withViewModel:(GyAuthViewModel *_Nonnull)model andCallback:(GyVerifyCallback _Nonnull)callback;
/**
* 关闭登录界面
* 请不要使用其他方式关闭授权页面, 否则可能导致 OneLogin 无法再次调起
*/
+ (void)closeAuthVC:(BOOL)animated completion:(void (^ __nullable)(void))completion;
+ (void)closeAuthVC:(void (^ __nullable)(void))completion;
/**
停止点击授权页面登录按钮之后的加载进度条
*/
+ (void)stopLoading;
/**
enable授权页面登录按钮
*/
+ (void)enableAuthButton;
/**
disable授权页面登录按钮
*/
+ (void)disableAuthButton;
/**
* @abstract 更新授权页面一键登录按钮的文案
*
* @param authButtonTitle 一键登录按钮的文案
*/
+ (void)updateAuthButtonTitle:(NSAttributedString *_Nonnull)authButtonTitle;
/**
* @abstract 服务条款左边复选框是否勾选
*/
+ (BOOL)isProtocolCheckboxChecked;
/**
* @abstract 一键登录预取号拿到的token是否还在有效期
*
* @return YES - 还在有效期可直接调用oneTapLogin 方法进行登陆
* NO - 已失效需重新调用preGetToken进行预取号之后再调用oneTapLogin方法进行取号
*/
+ (BOOL)isPreGettedTokenValidate;
/**
* 删除预取号缓存
*/
+ (void)deletePreResultCache;
/**
* 当前网络环境
* 根据返回结果判断是否适合使用一键登录方法(数据网络必须打开,如下所示,需要满足network==1 || network==3)
* carrier: 运营商: 0.未知 / 1.中国移动 / 2.中国联通 / 3.中国电信
* network: 网络类型: 0.无网络/ 1.数据流量 / 2.wifi / 3.数据+wifi
* network即使返回非0, 也可能因为终端用户未授权,数据网络网络权限而无法访问设备的移动蜂窝数据网络
* {
* carrier: 0/1/2/3
* network: 0/1/2/3
* }
*/
+ (NSMutableDictionary *_Nonnull)currentNetworkInfo DEPRECATED_MSG_ATTRIBUTE("");
/**
* @abstract 获取当前授权页面对应的ViewController
*
* @return 当前授权页面对应的ViewController
*/
+ (UIViewController *_Nullable)currentAuthViewController;
/**
* 获取当前手机卡数量
* @return 0,1,2
*/
+ (NSInteger)getCurrentCarrierCount;
#pragma mark 本机号码校验功能, 与一键登录功能无关联
/**
* 获取本机号码校验所需要的 processID 和 token
* @param callback 回调
* {
* code: 30000, //NSNumber, 非30000为失败
* msg: "success" // NSString, 返回信息
* phone: "1333333333" // NSString, 输入的手机号
* token: "xxx" // NSString, 授权凭证
* processID: "xxx" // NSString, 流水号
* operatorType = 4; // NSString, 操作类型
*
* }
*/
+ (void)getPhoneVerifyTokenCallback:(GyVerifyCallback _Nonnull)callback;
/**
* 本机号码校验,本接口为客户端校验手机号使用
* 若需要服务端校验手机号码,请使用 getPhoneVerifyToken:andCallback 获取 相关参数
* @param pn 待校验手机号码
* @param token getPhoneVerifyToken 返回的 token
* @param processId getPhoneVerifyToken 返回的processId
* @param callback 回调
* {
* code: 30000, //NSNumber, 非30000为失败
* msg: "success" // NSString, 返回信息
* }
*/
+ (void)checkPhoneNumber:(NSString *_Nonnull)pn withToken:(NSString *_Nonnull)token withProcessId:(NSString *_Nonnull)processId withOperatorType:(NSString *_Nonnull)opType andCallback:(GyVerifyCallback _Nonnull)callback;
+ (void)checkPhoneNumber:(NSString *_Nonnull)pn andCallback:(GyVerifyCallback _Nonnull)callback __deprecated_msg("请使用 checkPhoneNumber:withToken:withProcessId:andCallback");
/**
* 获取SDK版本号
*
* @return SDK版本号
*/
+ (NSString *_Nonnull)getVersion;
/**
* 设置debug模式发布时不要设置默认关闭
* @param debug 是否打开调试
*/
+ (void)setDebug:(BOOL)debug;
/**
* 销毁 SDK
*/
+ (void)destroy;
+ (nullable NSString *)gyuid;
@end