REDeLoginKit.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. //
  2. //
  3. #define SDK_OVERSEAS_VERSION @"2.0.6.9"
  4. #import <Foundation/Foundation.h>
  5. #import <UIKit/UIKit.h>
  6. #import "REDeRoleInfo.h"
  7. #import "REDeOrderInfo.h"
  8. #import "REDeLoginKit.h"
  9. #import "REDeDelegate.h"
  10. @interface REDeLoginKit : NSObject
  11. #pragma mark - init
  12. // 初始化 设置产品,最先需要调用的接口(必接) 与初始化带设置默认语言二选一
  13. + (void)initSDKWithProductCode:(NSString *)productCode callback:(id<REDeInitCallback>)initDelegate;
  14. /** 初始化 设置产品,最先需要调用的接口(必接) 与初始化不带设置默认语言二选一
  15. *@param productCode sdk参数从后台获取
  16. *@param language sdk显示语言,(简体中文@"zh-CN"或“zh_Hans”, 中文繁体@"zh-hk" 或"zh-Hant", 德语@"de", 英语@"en-us", 法语@"fr", 日语@"ja", 韩语@"ko“, 俄语@"ru", 泰语@"th", 印尼语@"id",越南语@"vi",土耳其语@"tr",,阿拉伯语@"ar",)
  17. *@param initDelegate 初始化回调接收对象
  18. */
  19. + (void)initSDKWithProductCode:(NSString *)productCode language:(NSString *)language callback:(id<REDeInitCallback>)initDelegate;
  20. // 是否已经初始化成功了
  21. + (BOOL)isInitialized;
  22. // 设置登录回调监听对象(必接)
  23. + (void)setFunctionLoginCallback:(id<REDeLoginCallback>)loginDelegate;
  24. // 设置支付回调监听对象(必接)
  25. + (void)setFunctionBuyCallback:(id<REDeBuyCallback>)buyDelegate;
  26. #pragma mark - 用户服务
  27. /** 获取是否存在上次登录账号信息 YES:存在, NO:不存在 */
  28. + (BOOL)checkLoginValid;
  29. /**进入用户登录页面。收到切换用户通知或者主动注销用户后调用(必接)
  30. @method isShowMenu YES:登录自动显示浮标 NO:登录不自动显示浮标
  31. */
  32. + (void)loginWithMenuShow:(BOOL)isShowMenu;
  33. // 自动注册和自动登录流程,玩家首次游戏无需注册,达到快速游戏的目的,适合于没有登录按键的游戏在启动后调用
  34. + (void)fastlyStartGame;
  35. // 主动调用除账密登录外的其他方式登录,无SDK登录界面
  36. + (void)loginAccountType:(USERCENTER_TYPE)type;
  37. // 主动调用绑定账号
  38. + (void)bindAccountType:(USERCENTER_TYPE)type;
  39. // 主动调用解绑三方账号
  40. + (void)unbindAccount:(USERCENTER_TYPE)type;
  41. //获取渠道绑定信息
  42. + (NSDictionary *)getUserBindInfo;
  43. // 购买接口(必接)
  44. + (void)IAPWithParameter:(REDeOrderInfo *)param;
  45. // 获取已购买的非消耗商品或者订阅商品,商品信息通过回调返回(通常游戏自己也能获取到这些商品信息,支持购买自动订阅商品或者非消耗商品时选接)
  46. + (void)restoreNonConsumptionProducts:(id<REDeRestoreCallback>)restoreDelegate;
  47. //根据传入的商品id列表获取商品信息,结果通过回调返回
  48. + (void)findProductInfoWithProductIds:(NSArray *)productArr delegate:(id<REProductInfoCallback>)productDelegate;
  49. //通过SDK后台配置的商品id列表获取商品信息,结果通过回调返回
  50. + (void)findProductInfoWithDelegate:(id<REProductInfoCallback>)productDelegate;
  51. //@method logout 退出登录。
  52. + (void)logout;
  53. /** 显示浮标,isLeft 浮标是否居左 originalY 浮标纵向位置起始点 */
  54. + (void)showFloatButtonIsLeft:(BOOL)isLeft buttonOriginalY:(CGFloat)originalY;
  55. /** 隐藏浮动菜单 */
  56. + (void)dismissMenu;
  57. /** 进入用户中心 */
  58. + (void)enterUserCenter;
  59. /** 关闭用户中心 */
  60. + (void)dismissUserCenter;
  61. /** 设置销毁账户提示文案,不设置将使用默认文案 */
  62. + (void)configAccountDeletionTipContent:(NSString *)tipContent;
  63. /** 删除账户,需要用户确认 */
  64. + (void)accountDeletion;
  65. /** 直接删除账户,不需要用户确认 */
  66. + (void)accountDeletionWithoutConfirm;
  67. /** 设置个人中心界面是否显示删除账号入口,默认显示YES */
  68. + (void)setNeedShowAccountDeletionInUserCenter:(BOOL)show;
  69. /**
  70. @method userID
  71. @rerurn 返回用户id。如未登录,返回空。
  72. //通常在登录成功回调中调用
  73. */
  74. + (NSString *)userID;
  75. // 获取用户登录账号。如未登录,返回空。
  76. + (NSString *)getUserAccount;
  77. // 用户校验码,用于到服务器端验证用户真实性。
  78. + (NSString *)getUserToken;
  79. /** 获取三方accesstoken */
  80. + (NSString *)getAccessToken;
  81. // 判断是否是新用户,YES为新用户,NO为已经注册过的用户
  82. + (BOOL)isNewUser;
  83. /** 移除内购监听 */
  84. + (void)removeKitTransactionObserver;
  85. //设置角色信息 选择角色进入游戏时需要设置 必接
  86. + (void)setGameRoleInfo:(REDeRoleInfo *)roleInfo;
  87. //应用OpenUrl回调 必接
  88. + (void)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options;
  89. + (void)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)source annotation:(id)annotation;
  90. + (void) application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *_Nullable))restorationHandler;
  91. // 用户是否是游客,请先判断用户是否有登录
  92. + (BOOL)isUserGuest;
  93. // 绑定第3方账号页面
  94. + (void)bandAccount;
  95. /**
  96. @method u_stpping
  97. @rerurn 返回0表示可以进入,1表示不能进入。
  98. //通常在登录成功回调中调用
  99. */
  100. + (BOOL)userStopping;
  101. // 获取设备ID
  102. + (NSString *)getDeviceID;
  103. // 获取渠道号
  104. + (NSString *)channelCode;
  105. // 获取国家码
  106. + (NSDictionary *)getNationCode;
  107. /** 是否启用游客绑定提示 YES:禁用 NO启用 默认NO */
  108. + (void)guestBingTipDisable:(BOOL)yesOrNo;
  109. /** 设置是否自动登录,默认自动登录YES*/
  110. + (void)setNeedAutoLogin:(BOOL)autoLogin;
  111. /** 设置自动登录时是否显示切换按钮,默认显示YES*/
  112. + (void)setNeedSwitchWhenAutoLogin:(BOOL)yesOrNo;
  113. /** 设置个人中心界面是否显示uid,默认不显示NO*/
  114. + (void)setNeedShowUid:(BOOL)show;
  115. /** 设置个人中心界面是否显示切换按钮,默认显示YES*/
  116. + (void)setNeedShowSwitchInUserCenter:(BOOL)show;
  117. /** 打开评价界面 appid用于应用内评分界面无法使用时跳转到AppStore应用详情页编辑评论可为空, 传空则不跳转 */
  118. + (void)showAppCommentWithAppID:(NSString *)appid;
  119. /**
  120. * 是否启用Guest登录,YES启用 NO禁用 默认YES
  121. */
  122. + (void)guestLoginEnable:(BOOL)yesOrNo;
  123. /**
  124. * 是否启用Facebook登录,YES启用 NO禁用 默认YES
  125. */
  126. + (void)facebukLoginEnable:(BOOL)yesOrNo;
  127. /**
  128. * 是否启用Apple登录,YES启用 NO禁用 默认YES
  129. */
  130. + (void)appleLoginEnable:(BOOL)yesOrNo;
  131. #pragma mark- FB统计相关接口
  132. /**
  133. * 完成教程的统计
  134. * contentData 特点内容
  135. * contentId 特点内容id
  136. * success 是否完成教程
  137. * tip:
  138. fb的标准打点事件,事件名:Complete Tutorial
  139. */
  140. + (void)logCompleteTutorialEvent:(NSString *)contentData
  141. contentId:(NSString *)contentId
  142. success:(BOOL)success;
  143. /**
  144. * 角色升级的统计
  145. * level 角色等级
  146. * tip:
  147. fb的标准打点事件,事件名:Achieve Level
  148. */
  149. + (void)logAchieveLevelEvent:(NSString *)level;
  150. /**
  151. * 完成内购的统计
  152. * purchaseAmount 商品价格
  153. * currency 货币类型
  154. * parameters 额外携带参数,value值应该是NSString或NSNumber,@{@"order":@“orderid”}
  155. * tip:
  156. fb的标准打点事件,事件名:Purchase FB默认已经接入可不接
  157. */
  158. + (void)logPurchase:(double)purchaseAmount
  159. currency:(NSString *)currency
  160. parameters:(NSDictionary<NSString *, id> *)parameters;
  161. /**
  162. * 成就解锁
  163. * description 成就解锁的描述
  164. * type 成就解锁类型
  165. * tip:
  166. fb的标准打点事件,事件名:Unlock Achievement
  167. */
  168. + (void)logUnlockAchievementEvent:(NSString *)description type:(NSString *)type;
  169. /**
  170. * 发起结账
  171. * contentData 商品名称,可以是json对象列表如[{\"id\": \"1234\", \"quantity\": 2}, {\"id\": \"5678\", \"quantity\": 1}]
  172. * contentId 商品id
  173. * contentType 商品类型 product or product_group
  174. * numItems 商品数量
  175. * currency 货币类型
  176. * totalPrice 总价
  177. * tip:
  178. fb的标准打点事件,事件名:Initiate Checkout
  179. */
  180. + (void)logInitiateCheckoutEvent:(NSString *)contentData
  181. contentId:(NSString *)contentId
  182. contentType:(NSString *)contentType
  183. numItems:(NSInteger)numItems
  184. paymentInfoAvailable:(BOOL)paymentInfoAvailable
  185. currency:(NSString *)currency
  186. valueToSum:(double)totalPrice;
  187. /**
  188. * 自定义事件
  189. * eventName 事件名
  190. * valueToSum 开启后系统会根据这个事件关联一个值,并按这个事件发生的全部情况求出总和,便于查看平均值,当为0默认不开启
  191. * parameters 附带参数,可以为该事件添加参数,参数key自定义如:@{@"order":orderid}
  192. * tip:
  193. fb的自定义事件
  194. */
  195. + (void)logEvent:(NSString *)eventName valueToSum:(double)valueToSum parameters:(NSDictionary<NSString *, id> *)parameters;
  196. #pragma mark- Appsflyer相关接口
  197. /**
  198. * 初始化appsflyer
  199. * @param devKey AppsFlyer devKey
  200. * @param appID itunes connect分配的appID
  201. * @param Sandbox 支付验证是否用沙盒模式,不传默认为NO(正式模式), 注意:出正式提审包时一定要设置为NO
  202. * * @param currency 设置AF统计货币类型,可传nil或空字符串则使用默认的USD
  203. */
  204. + (void)setAppsFlyerDevKey:(NSString *)devKey appleAppID:(NSString *)appID useReceiptValidationSandbox:(BOOL)Sandbox currencyType:(NSString *)currency;
  205. /**
  206. *AppsFlyer自定义事件接口(选接)
  207. *
  208. @param eventName 自定义事件名从AppsFlyerLib.framework的`AppsFlyerLib.h`的预定义常量中获取
  209. @param values 参数字典(可传空),key值从`AppsFlyerLib.h`的预定义常量中获取
  210. 调用事例:
  211. [REDeLoginKit afTrackEvent:AFEventPurchase
  212. withValues: @{AFEventParamRevenue : @200,
  213. AFEventParamCurrency : @"USD",
  214. AFEventParamQuantity : @2,
  215. AFEventParamContentId: @"092",
  216. AFEventParamReceiptId: @"9277"}];
  217. */
  218. + (void)afTrackEvent:(NSString *)eventName withValues:(NSDictionary * _Nullable)values;
  219. /** 配置appsflyer是否需要上报SDK内登录流程事件 */
  220. + (void)configNeedAppsFlyerLoginEvent:(BOOL)need;
  221. /** 开始初始化 */
  222. + (void)configFireBase;
  223. #pragma mark- firebaseAnalytics相关接口
  224. /** 统计任意事件eventname:事件名 paramDict:统计参数 */
  225. + (void)logEventWithName:(NSString *)eventName
  226. andWithParam:(NSDictionary *)paramDict;
  227. /** 统计虚拟货币收入 */
  228. + (void)logGetVirualCurrencyWithCurrencyName:(NSString *)currencyName
  229. andWithValue:(NSString *)value;
  230. /** 统计加入群组 */
  231. + (void)logJoinGroupWithGroupId:(NSString *)groupId;
  232. /** 统计角色升级 */
  233. + (void)logLevelUpWithLevel:(NSString *)level
  234. andWithCharacter:(NSString *)character;
  235. /** 统计虚拟货币支出 */
  236. + (void)logSpendVirtualCurrencyWithItemName:(NSString *)itemName
  237. andWithVirtualCurrencyName:(NSString *)currencyName
  238. andWithValue:(NSString *)value;
  239. /** 统计开始学习 */
  240. + (void)logTutorialBegin;
  241. /** 统计学习结束 */
  242. + (void)logTurorialComplete;
  243. @end