lpw
2024-09-25 2f0847c51cfe186abd2c4fc554108edc1890d222
commit | author | age
dcdc07 1 //
W 2 //  WAUserProxy.h
3 //  WASdkIntfUI
4 //
5 //  Created by GHW-T-01 on 16/3/1.
6 //  Copyright © 2016年 GHW-T-01. All rights reserved.
7 //
8
9 #import <Foundation/Foundation.h>
10 #import <UIKit/UIKit.h>
2174b5 11 #import <WASdkIntf/WALoginResult.h>
L 12 #import <WASdkIntf/WABindingResult.h>
13 #import <WASdkIntf/WAAccount.h>
14 #import <WASdkIntf/WAUserCenterResult.h>
15 #import <WASdkIntf/WAAppUser.h>
16 #import <WASdkIntf/WACertificationInfo.h>
17 #import <WASdkIntf/WADeleteRequestModel.h>
18 #import <WASdkIntf/WADeleteResult.h>
19
248d1a 20 typedef NS_ENUM(NSInteger, OpenGameReviewState) {
L 21     OpenGameReviewStateReject=0,           //游戏评价结果:不,谢谢!
22     OpenGameReviewStateOpenAiHelp,       //游戏评价结果:我要提意见
23     OpenGameReviewStateOpentReview,       //游戏评价结果:提交好评(无法获取用户是否点击评分以及具体的评分分数)
24     OpenGameReviewStateError            //打开游戏评价失败,后台没有开启游戏评价开关
25
26 };
dcdc07 27 /*!
W 28  @discussion 登录协议
29  - - -
30  */
31 @protocol WALoginDelegate <NSObject>
32
33 @required
34 /*!
35  @abstract 登录成功
962836 36  @param result 登录结果
dcdc07 37  */
W 38 -(void)loginDidCompleteWithResults:(WALoginResult*)result;
39 /*!
40  @abstract 登录失败
41  @param result 登录的用户信息 注:这不是登录结果,由于登录失败所以userId是空的.但如果第三方平台(Facebook,Apple)授权成功,pUserId,pToken,extends不为空,可用于提示用户.
42  @param error 错误
43  */
44 -(void)loginDidFailWithError:(NSError*)error andResult:(WALoginResult*)result;
45 @optional
46 /*!
47  @abstract 用户取消登录
48  @param result 登录的账户信息 (注:返回的result只有platform有值)
49  */
50 -(void)loginDidCancel:(WALoginResult*)result;
51
52 @end
53
54 /*!
55  @discussion 账户绑定协议
56  - - -
57  */
58 @protocol WAAccountBindingDelegate <NSObject>
59
60 @required
61 /*!
62  @abstract 绑定成功
63  @param result 绑定的账户信息
64  */
65 -(void)bindingDidCompleteWithResult:(WABindingResult*)result;
66 /*!
67  @abstract 绑定失败
68  @param result 绑定的账户信息
69  @param error 错误
70  */
71 -(void)bindingDidFailWithError:(NSError*)error andResult:(WABindingResult*)result;
72 @optional
73 /*!
74  @abstract 绑定取消
75  @param result 绑定的账户信息(注:返回的result只有platform有值)
76  */
77 -(void)bindingDidCancel:(WABindingResult*)result;
78 @end
79
80 /*!
81  @discussion 登录界面协议
82  - - -
83  */
84 @protocol WALoginViewDelegate <NSObject>
85
86 @required
87 /*!
88  @abstract 登录成功
89  @param result 登录的用户信息
90  */
91 -(void)loginViewDidCompleteWithResult:(WALoginResult*)result;
92 /*!
93  @abstract 登录失败
94  @param result 登录的用户信息 注:这不是登录结果,由于登录失败所以userId是空的.但如果第三方平台(Facebook,Apple)授权成功,pUserId,pToken,extends不为空,可用于提示用户.
95  @param error 错误
96  */
97 -(void)loginViewDidFailWithError:(NSError*)error andResult:(WALoginResult*)result;
98 @optional
99 /*!
100  @abstract 用户取消登录
101  @param result 登录的用户信息(只有platform非空).
102  */
103 -(void)loginViewDidCancel:(WALoginResult*)result;
104 @end
105
1ac090 106
L 107
108
dcdc07 109 /*!
W 110  @discussion 账号管理界面协议
111  - - -
112  */
113 @protocol WAAcctManagerDelegate <NSObject>
114
115 @required
116 /*!
117  @abstract 新建账户回调接口
118  @param result 新建账户的账户信息
119  */
120 -(void)newAcctDidCompleteWithResult:(WALoginResult*)result;
121 /*!
122  @abstract 切换账户回调接口
123  @param result 切换账户的账户信息
124  */
125 -(void)switchAcctDidCompleteWithResult:(WALoginResult*)result;
1ac090 126
L 127 /*!
128 @abstract 绑定账号回调接口
129 @param bindResult 绑定账号信息
130 */
131 -(void)bindAccountDidCompleteWithResult:(WABindingResult*)bindResult;
132
133
134 /*!
135 @abstract 实名认证成功回调接口
136 @param certificationInfo 实名认证信息
137 */
138 -(void)realNameAuthtDidCompleteWithResult:(WACertificationInfo*)certificationInfo;
139
dcdc07 140 @end
W 141
d9782e 142 /*!
H 143  @discussion 用户中心
144  - - -
145  */
146 @protocol WAUserCenterNoticeDelegate <NSObject>
147 /*!
148  @abstract 获取用户中心数据回调接口
149  @param result 用户中心数据信息
150  */
151 - (void)userCenterNoticeWithResult:(WAUserCenterResult *)result;
152
153 @end
154
155 /*!
156  @discussion 用户中心
157  - - -
158  */
159 @protocol WAUserCenterNoticeUIDelegate <NSObject>
160 /*!
161  @abstract 用户中心界面关闭回调接口
162  */
163 - (void)userCenterNoticeClose;
164 /*!
165  @abstract 用户中心界面错误回调接口
166  @param error 用户中心错误信息
167  */
168 - (void)userCenterNoticeError:(NSError *)error;
169
170 @end
171
dcdc07 172
W 173 /*!
174  @discussion WAUserProxy 是用户模块的代理类。功能包括设置登录流程、登录、登出、绑定、解绑、查询当前用户绑定的第三方平台账户列表、切换账号、创建账号等等。
175  - - -
176  */
177
178 @interface WAUserProxy : NSObject
179
180 /*!
181  @discussion 设置登录流程
182  @param flowType 常量WA_LOGIN_FLOW_TYPE_DEFAULT是默认模式,表示切换新账户的时候不进行设备绑定操作,下次调用匿名登录还是登录之前的账户。常量WA_LOGIN_FLOW_TYPE_REBIND切换新账户的时候将当前设备的clientId绑定到新账户中,下一次匿名登录的时候将会登录到新账户。
183  */
184 +(void)setLoginFlowType:(int)flowType;
185
186 /*!
187  @discussion 获取登录流程
188  */
189 +(int)getLoginFlowType;
190
191 /*!
192  @discussion 登录接口
193  @param platform 登录平台:目前的登录平台有Facebook,Apple,GUEST,对应的常量分别是WA_PLATFORM_FACEBOOK,WA_PLATFORM_APPLE,WA_PLATFORM_WINGA。
194  @param extInfo 扩展信息
195  @param delegate 委托
196  */
197 +(void)loginWithPlatform:(NSString *const)platform extInfo:(NSString*)extInfo delegate:(id<WALoginDelegate>)delegate;
198 /*!
199  @discussion 登出接口
200  */
201 +(void)logout;
202
203 /*!
204  @discussion 绑定账户接口
205  @param platform 绑定平台:目前有Facebook,Apple,对应的常量分别为WA_PLATFORM_FACEBOOK,WA_PLATFORM_APPLE
206  @param extInfo 扩展信息
207  @param delegate 委托
208  */
209 +(void)bindingAccountWithPlatform:(NSString *const)platform extInfo:(NSString*)extInfo delegate:(id<WAAccountBindingDelegate>)delegate;
210 /*!
211  @discussion 查询绑定的第三方平台账户列表
212  @param block 回调
213  @error 错误
214  @accounts 数组accounts存放着WAAccount类型的对象.
215  */
216 +(void)queryBoundAccountWithCompleteBlock:(void(^)(NSError* error,NSArray<WAAccount *>* accounts))block;
217 /*!
218  @discussion 解绑账号接口
219  @param platform 解绑平台(WAAccount中的platform)
220  @param pUserId 第三方平台用户id(WAAccount中的pUserId)
221  */
222 +(void)unBindAccountWithPlatform:(NSString *const)platform platformUserId:(NSString*)pUserId completeBlock:(void(^)(NSError* error))completeBlock;
223 /*!
224  @discussion 切换账号接口
225  @param platform 切换平台
962836 226  @param completeBlock 回调结果:包括error(错误)和result(登录结果)
dcdc07 227  */
W 228 +(void)switchAccountWithPlatform:(NSString *const)platform completeBlock:(void(^)(NSError* error,WALoginResult* result))completeBlock;
229
230 /*!
231  @discussion 创建账号接口
962836 232  @param completeBlock 回调结果:包括error(错误)和result(创建结果)
dcdc07 233  */
W 234 +(void)createNewAccountWithCompleteBlock:(void(^)(NSError* error,WALoginResult* result))completeBlock;
235
236
237 /*!
238  @abstract 调用此方法打开登录界面
239  @param delegate 委托
240  @param cacheEnabled 是否缓存登录方式 当该参数为YES,默认以上次登录方式登录,不会弹出登录选择框。
241  */
242 +(void)login:(id<WALoginViewDelegate>)delegate cacheEnabled:(BOOL)cacheEnabled;
243 /*!
244  @abstract 调用此方法隐藏登录界面
245  */
246 +(void)hide;
247 /*!
248  @abstract 清除登录方式的缓存 清除缓存之后会再次弹出登录选择框
249  */
250 +(void)clearLoginCache;
251 /*!
252  @abstract 调用此方法打开账户管理界面
253  @param delegate 委托
254  */
255 +(void)openAccountManager:(id<WAAcctManagerDelegate>)delegate;
256
1ac090 257
2a54d4 258 ///*!
L 259 //@abstract 调用此方法打开账户管理界面
260 //@param delegate 委托
261 //*/
262 //+(void)openAccountCenter:(id<WAAcctManagerDelegate>)delegate;
1ac090 263
L 264
265
266
267 +(BOOL)isBoundPlatformAccount;
dcdc07 268 /*!
W 269  @abstract 获取账户信息
270  @param platform 平台
271  */
272 +(WAAppUser*)getAccountInfoWithPlatform:(NSString *const)platform;
273
274 //+(NSString*)transferWithPlatform:(NSString *const)platform;
275
d9782e 276 + (void)getUserCenterNotice:(id<WAUserCenterNoticeDelegate>)delegate;
H 277
278 + (void)showUserCenterNoticeUI:(id<WAUserCenterNoticeUIDelegate>)delegate;
279
dcdc07 280 /*!
W 281  @discussion 处理UIApplicationDelegate的方法[-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions]传递过来的参数。
282  */
283 + (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
284
285 /*!
962836 286  @discussion 处理UIApplicationDelegate的方法[- (void)applicationDidBecomeActive:(UIApplication *)application]传递过来的参数。
dcdc07 287  */
962836 288 +(void)applicationDidBecomeActive:(UIApplication *)application;
W 289
290 /*!
291  @discussion 处理UIApplicationDelegate的方法[- (void)applicationWillEnterForeground:(UIApplication *)application]传递过来的参数。
292  */
293 +(void)applicationWillEnterForeground:(UIApplication *)application;
294
295 /*!
296  @discussion 处理UIApplicationDelegate的方法[- (void)applicationDidEnterBackground:(UIApplication *)application]传递过来的参数。
297  */
298 +(void)applicationDidEnterBackground:(UIApplication *)application;
dcdc07 299
W 300 /*!
301  @discussion 处理UIApplicationDelegate的方法[-(BOOL)application:(UIApplication *)application
302  openURL:(NSURL *)url
303  sourceApplication:(NSString *)sourceApplication
304  annotation:(id)annotation]传递过来的参数。
305  */
306 +(BOOL)application:(UIApplication *)application
307            openURL:(NSURL *)url
308  sourceApplication:(NSString *)sourceApplication
309         annotation:(id)annotation;
310
d814a6 311
L 312
313 //当一个新的场景被创建时调用,可以在这个方法中配置场景。
314 - (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions API_AVAILABLE(ios(13.0));
315 // 当场景被销毁时调用。
316 - (void)sceneDidDisconnect:(UIScene *)scene  API_AVAILABLE(ios(13.0));
317 //当场景变成活跃状态时调用。
318 - (void)sceneDidBecomeActive:(UIScene *)scene API_AVAILABLE(ios(13.0));
319 //当场景将要变成非活跃状态时调用。
320 - (void)sceneWillResignActive:(UIScene *)scene API_AVAILABLE(ios(13.0));
321 //当应用程序即将进入前台时调用。
322 - (void)sceneWillEnterForeground:(UIScene *)scene  API_AVAILABLE(ios(13.0));
323 //当应用程序进入后台时调用。
324 - (void)sceneDidEnterBackground:(UIScene *)scene API_AVAILABLE(ios(13.0));
325 //当别的APP通过URL地址,打开我们的app时调用
326 - (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts API_AVAILABLE(ios(13.0));
327 - (void)scene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity API_AVAILABLE(ios(13.0));
328
329
330
331
dcdc07 332 /*!
W 333  @discussion (tip:CP无需关注)此方法为成功登录第三方平台之后调用。根据第三方平台的pUserId,pToken,platform构建一个WALoginResult实例作为参数调用此方法。此方法将会调用WindAnalytics的登录接口。
334  @param result 登录结果
335  @param delegate 委托
336  */
337 +(void)loginWithResult:(WALoginResult*)result delegate:(id<WALoginDelegate>)delegate;
338
339 +(void)loginWithResult:(WALoginResult*)result extInfo:(NSString*)extInfo delegate:(id<WALoginDelegate>)delegate;
340
341 /*!
342  @discussion (tip:CP无需关注)设置当前的登录平台
343  */
344 +(void)setCurrentLoginPlatform:(NSString *const)platform;
345 /*!
346  @discussion (tip:CP无需关注)获取当前的登录平台
347  */
348 +(NSString*)getCurrentLoginPlatform;
349 /*!
350  @discussion (tip:CP无需关注)获取当前的登录结果
351  */
352 +(WALoginResult*)getCurrentLoginResult;
353
354 /*!
355  @discussion (tip:CP无需关注)获取用户模块组件
356  */
357 +(NSArray*)getUserComponents;
1ac090 358
L 359 +(void)queryUserCertificationInfo:(void(^)(WACertificationInfo *certificationInfo,NSError *error))callBackBlock;
360
361
362 /*!
363  @discussion 检测是否可以打开账号绑定、账号切换、实名认证接口
364  */
365 + (BOOL)canOpenAccoutbind;
366 + (BOOL)canOpenAccoutSwitch;
367 + (BOOL)canOpenRealNameAuth;
368
369 /*!
370 @discussion 打开账户绑定界面
371 */
372 + (void)openAccoutbindManager:(void(^)(NSError* error,WABindingResult  * bindResult))block;
373
374
375 /*!
376 @discussion 打开账户切换界面
377 */
378 + (void)openAccoutSwithchManager:(void(^)(NSError* error,WALoginResult  * loginResult))block;
379
380
381 /*!
382 @discussion 打开实名认证界面
383 */
384 + (void)openRealNameAuthManager:(void(^)(NSError* error,WACertificationInfo  * certificationInfo))block;
385
386
387
388 /*!
389 @discussion 打开as评分弹框
390 */
391 + (void)openReview API_AVAILABLE(ios(10.3), macos(10.14));
392
393
394
79188b 395 /*!
L 396 @discussion 打开idfa弹框授权
397  */
398 + (void)openTTAAuthorizationWithCompletionHandler:(void(^)(NSError* error,NSUInteger status))block;
399
400 /*!
401 @discussion 隐私协议弹框
402  error 不为空时
403     status  -1  弹出了协议框,用户点击了拒绝
404             
405  error 为空
406     status 1 弹出了协议框,用户点击了同意
407     status 2 没有弹出协议框,用户之前点击过同意,无需再弹
408  */
409 + (void)openPrivacyAgreementWindow:(void(^)(NSError* error,NSUInteger status))bloc;
410
2174b5 411
L 412
413 //**************************************删除账号有关start************************************************************
414
415 /*!
416 @discussion 检测是否可调用玩家身份确认接口
417  */
418 + (BOOL)canCheckIdentity;
419
420 /*!
421  @discussion 注销账号时,验证当前用户的身份证、id是否匹配,确认是本人操作
422  @param realName 姓名
423  @param idCard     身份证号码
424  */
425 + (void)identityCheck:(NSString*)realName idCard:(NSString*)idCard completeBlock:(void(^)(NSError* error))block;
426
427
428 //删除账号授权,拿到第三方的token信息,如 signinwithapple拿到authorizationCode
429 + (void)deleteAccounAuthorizationWithPlatform:(NSString*)platform completeBlock:(void(^)(NSError* error,WADeleteRequestModel*deleteResult))block;
430
431
432 /*!
433 @discussion 账号删除接口
434  */
435 + (void)requestDeleteAccout:(WADeleteRequestModel*)deleteResult completeBlock:(void(^)(NSError* error,WADeleteResult*result))completeBlock;
436
437 /*!
438 @discussion 取消删除账号接口
439  */
440
441 + (void)cancelRequestDeleteAccoutWithUserid:(NSString*)userid callback:(void (^)(NSError *))completeBlock;
442
443
444 // status==1,提交删除账号申请成功
445 // status==2,用户取消
446 + (void)requestDeleteAccoutUI:(void(^)(NSError *error, NSUInteger status))completeBlock;
447
448
449
450 //**************************************删除账号有关end************************************************************
451
452
453
248d1a 454 /*!
L 455 @discussion 打开游戏评分功能
456  */
457 + (void)openGameReview:(void(^)(OpenGameReviewState status))block;
2174b5 458
L 459
00c86c 460 /*!
L 461 @discussion 弹出cmp修改同意内容弹框
462  */
463 + (void)showConsentPreferences;;
2174b5 464
dcdc07 465 @end