ZXSDK.h 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. //
  2. // ZXSDK.h
  3. // ZXSDK
  4. //
  5. // Created by zx on 2021-03-10.
  6. // ZXSDK-Version: 3.2.3.19134
  7. #import <Foundation/Foundation.h>
  8. //! Project version number for ZXSDK.
  9. FOUNDATION_EXPORT double ZXSDKVersionNumber;
  10. //! Project version string for ZXSDK.
  11. FOUNDATION_EXPORT const unsigned char ZXSDKVersionString[];
  12. #define ZXSDKStoreDATA(sectname) __attribute((used, section("__DATA,"#sectname" ")))
  13. #define ZXSDKStoreMod(name, value) \
  14. class ZXSDK; char * k##name##_mod ZXSDKStoreDATA(ZXSDKMods) = ""#value"";
  15. @class ZXSDKResultModel;
  16. typedef void (^ZXSDKCallback)(ZXSDKResultModel *_Nullable model, NSError *_Nullable error);
  17. typedef void (^ZXSDKSAIDCallback)(NSString *_Nullable said, NSError *_Nullable error);
  18. typedef void (^ZXSDKAidInfoCallback)(NSDictionary *_Nullable res, NSError *_Nullable error);
  19. typedef void (^ZXSDKVerifyCallback)(BOOL success, NSError *_Nullable error);
  20. typedef void (^ZXSDKAuthTokenCallback)(NSString *_Nullable token, NSError *_Nullable error);
  21. @interface ZXSDKResultModel : NSObject
  22. @property (nonatomic, copy, nonnull) NSString *zxid;
  23. @property (nonatomic, copy, nonnull) NSString *expireTime;
  24. @property (nonatomic, copy, nullable) NSString *openid;
  25. @property (nonatomic, copy, nullable) NSArray *tags;
  26. @property (nonatomic, copy, nullable) NSString *aaid;
  27. @property (nonatomic, copy, nullable) NSString *vaid;
  28. @end
  29. @protocol ZXSDKProtocol <NSObject>
  30. /// 获取SAID
  31. /// @param accessKeyId 通过管理后台申请分配的密钥标识
  32. /// @param signature 信息签名字符串,参考签名方式。
  33. /// @param signatureMethod 信息签名方法,目前固定为 HMAC-SHA256 。
  34. /// @param signatureNonce 64 字节以内的随机串,用于防止重放攻击,每次请求 必须提供不同的值。
  35. /// @param timestamp UTC时间戳,从UTC1970年1月1日0时0分0秒起至现在 的总秒数。如 1632634877
  36. - (void)getSAIDWithAccessKeyId:(NSString *_Nonnull)accessKeyId
  37. signature:(NSString *_Nonnull)signature
  38. signatureMethod:(NSString *_Nonnull)signatureMethod
  39. signatureNonce:(NSString *_Nonnull)signatureNonce
  40. timestamp:(NSString *_Nonnull)timestamp
  41. callback:(ZXSDKSAIDCallback _Nonnull)callback;
  42. /// 获取预授权token
  43. - (void)getAuthToken:(ZXSDKAuthTokenCallback _Nonnull)callback;
  44. /// 获取卓信id
  45. - (void)getZXID:(ZXSDKCallback _Nonnull)callback;
  46. /// 获取设备对应Tag
  47. - (void)getTag:(ZXSDKAidInfoCallback _Nonnull)callback;
  48. /// 读取卓信ID开关
  49. - (BOOL)enable;
  50. /// 设置卓信ID开关
  51. /// @param enable YES:打开(默认) NO:关闭
  52. - (void)setEnable:(BOOL)enable;
  53. /// 设置是否提示权限弹窗
  54. /// @param allow YES:提示(默认) NO:不提示
  55. - (void)allowPermissionDialog:(BOOL)allow;
  56. /// 读取卓信是否允许弹窗
  57. - (BOOL)isAllowPermissionDialog;
  58. /// sdk版本号
  59. - (NSString * _Nonnull)version;
  60. @end
  61. @interface ZXSDK : NSObject
  62. + (void)startZXSDK;
  63. /// 获取卓信id
  64. + (void)getZXID:(ZXSDKCallback _Nonnull)callback;
  65. /// 获取SAID
  66. /// @param accessKeyId 通过管理后台申请分配的密钥标识
  67. /// @param signature 信息签名字符串,参考签名方式。
  68. /// @param signatureMethod 信息签名方法,目前固定为 HMAC-SHA256 。
  69. /// @param signatureNonce 64 字节以内的随机串,用于防止重放攻击,每次请求 必须提供不同的值。
  70. /// @param timestamp UTC时间戳,从UTC1970年1月1日0时0分0秒起至现在 的总秒数。如 1632634877
  71. + (void)getSAIDWithAccessKeyId:(NSString *_Nonnull)accessKeyId
  72. signature:(NSString *_Nonnull)signature
  73. signatureMethod:(NSString *_Nonnull)signatureMethod
  74. signatureNonce:(NSString *_Nonnull)signatureNonce
  75. timestamp:(NSString *_Nonnull)timestamp
  76. callback:(ZXSDKSAIDCallback _Nonnull)callback;
  77. /// 获取预授权token
  78. + (void)getAuthToken:(ZXSDKAuthTokenCallback _Nonnull)callback;
  79. /// 获取设备对应Tag
  80. + (void)getTag:(ZXSDKAidInfoCallback _Nonnull)callback;
  81. /// 读取卓信ID开关
  82. + (BOOL)enable;
  83. /// 设置卓信ID开关
  84. /// @param enable YES:打开(默认) NO:关闭
  85. + (void)setEnable:(BOOL)enable;
  86. /// 设置是否提示权限弹窗
  87. /// @param allow YES:提示(默认) NO:不提示
  88. + (void)allowPermissionDialog:(BOOL)allow;
  89. /// 读取卓信是否允许弹窗
  90. + (BOOL)isAllowPermissionDialog;
  91. /// sdk版本号
  92. + (NSString * _Nonnull)version;
  93. /// 服务商使用, 普通开发不建议使用
  94. + (id<ZXSDKProtocol>_Nullable)initWithAppId:(NSString *_Nonnull)appId;
  95. /// 服务商调用 需要在`load`方法中注册服务商的APPID
  96. + (void)registerAppId:(NSString *_Nonnull)appId;
  97. @end