lipengwei
2019-10-10 56b891b2b50a493e805019147fabac796292c5d5
commit | author | age
d1f6ab 1 //
H 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>
11 #import "WALoginResult.h"
12 #import "WABindingResult.h"
13 #import "WAAccount.h"
56b891 14 #import "WAUserCenterResult.h"
d1f6ab 15 #import "WAAppUser.h"
H 16 /*!
17  @discussion 登录协议
18  - - -
19  */
20 @protocol WALoginDelegate <NSObject>
21
22 @required
23 /*!
24  @abstract 登录成功
2e0222 25  @param result 登录结果
d1f6ab 26  */
H 27 -(void)loginDidCompleteWithResults:(WALoginResult*)result;
28 /*!
29  @abstract 登录失败
30  @param result 登录的用户信息 注:这不是登录结果,由于登录失败所以userId是空的.但如果第三方平台(Facebook,Apple)授权成功,pUserId,pToken,extends不为空,可用于提示用户.
31  @param error 错误
32  */
33 -(void)loginDidFailWithError:(NSError*)error andResult:(WALoginResult*)result;
34 @optional
35 /*!
36  @abstract 用户取消登录
37  @param result 登录的账户信息 (注:返回的result只有platform有值)
38  */
39 -(void)loginDidCancel:(WALoginResult*)result;
40
41 @end
42
43 /*!
44  @discussion 账户绑定协议
45  - - -
46  */
47 @protocol WAAccountBindingDelegate <NSObject>
48
49 @required
50 /*!
51  @abstract 绑定成功
52  @param result 绑定的账户信息
53  */
54 -(void)bindingDidCompleteWithResult:(WABindingResult*)result;
55 /*!
56  @abstract 绑定失败
57  @param result 绑定的账户信息
58  @param error 错误
59  */
60 -(void)bindingDidFailWithError:(NSError*)error andResult:(WABindingResult*)result;
61 @optional
62 /*!
63  @abstract 绑定取消
64  @param result 绑定的账户信息(注:返回的result只有platform有值)
65  */
66 -(void)bindingDidCancel:(WABindingResult*)result;
67 @end
68
69 /*!
70  @discussion 登录界面协议
71  - - -
72  */
73 @protocol WALoginViewDelegate <NSObject>
74
75 @required
76 /*!
77  @abstract 登录成功
78  @param result 登录的用户信息
79  */
80 -(void)loginViewDidCompleteWithResult:(WALoginResult*)result;
81 /*!
82  @abstract 登录失败
83  @param result 登录的用户信息 注:这不是登录结果,由于登录失败所以userId是空的.但如果第三方平台(Facebook,Apple)授权成功,pUserId,pToken,extends不为空,可用于提示用户.
84  @param error 错误
85  */
86 -(void)loginViewDidFailWithError:(NSError*)error andResult:(WALoginResult*)result;
87 @optional
88 /*!
89  @abstract 用户取消登录
90  @param result 登录的用户信息(只有platform非空).
91  */
92 -(void)loginViewDidCancel:(WALoginResult*)result;
93 @end
94
95 /*!
96  @discussion 账号管理界面协议
97  - - -
98  */
99 @protocol WAAcctManagerDelegate <NSObject>
100
101 @required
102 /*!
103  @abstract 新建账户回调接口
104  @param result 新建账户的账户信息
105  */
106 -(void)newAcctDidCompleteWithResult:(WALoginResult*)result;
107 /*!
108  @abstract 切换账户回调接口
109  @param result 切换账户的账户信息
110  */
111 -(void)switchAcctDidCompleteWithResult:(WALoginResult*)result;
112 @end
113
56b891 114 /*!
L 115  @discussion 用户中心
116  - - -
117  */
118 @protocol WAUserCenterNoticeDelegate <NSObject>
119 /*!
120  @abstract 获取用户中心数据回调接口
121  @param result 用户中心数据信息
122  */
123 - (void)userCenterNoticeWithResult:(WAUserCenterResult *)result;
124
125 @end
126
127 /*!
128  @discussion 用户中心
129  - - -
130  */
131 @protocol WAUserCenterNoticeUIDelegate <NSObject>
132 /*!
133  @abstract 用户中心界面关闭回调接口
134  */
135 - (void)userCenterNoticeClose;
136 /*!
137  @abstract 用户中心界面错误回调接口
138  @param error 用户中心错误信息
139  */
140 - (void)userCenterNoticeError:(NSError *)error;
141
142 @end
143
d1f6ab 144
H 145 /*!
146  @discussion WAUserProxy 是用户模块的代理类。功能包括设置登录流程、登录、登出、绑定、解绑、查询当前用户绑定的第三方平台账户列表、切换账号、创建账号等等。
147  - - -
148  */
149
150 @interface WAUserProxy : NSObject
151
152 /*!
153  @discussion 设置登录流程
154  @param flowType 常量WA_LOGIN_FLOW_TYPE_DEFAULT是默认模式,表示切换新账户的时候不进行设备绑定操作,下次调用匿名登录还是登录之前的账户。常量WA_LOGIN_FLOW_TYPE_REBIND切换新账户的时候将当前设备的clientId绑定到新账户中,下一次匿名登录的时候将会登录到新账户。
155  */
156 +(void)setLoginFlowType:(int)flowType;
157
158 /*!
159  @discussion 获取登录流程
160  */
161 +(int)getLoginFlowType;
162
163 /*!
164  @discussion 登录接口
165  @param platform 登录平台:目前的登录平台有Facebook,Apple,GUEST,对应的常量分别是WA_PLATFORM_FACEBOOK,WA_PLATFORM_APPLE,WA_PLATFORM_WINGA。
166  @param extInfo 扩展信息
167  @param delegate 委托
168  */
169 +(void)loginWithPlatform:(NSString *const)platform extInfo:(NSString*)extInfo delegate:(id<WALoginDelegate>)delegate;
170 /*!
171  @discussion 登出接口
172  */
173 +(void)logout;
174
175 /*!
176  @discussion 绑定账户接口
177  @param platform 绑定平台:目前有Facebook,Apple,对应的常量分别为WA_PLATFORM_FACEBOOK,WA_PLATFORM_APPLE
178  @param extInfo 扩展信息
179  @param delegate 委托
180  */
181 +(void)bindingAccountWithPlatform:(NSString *const)platform extInfo:(NSString*)extInfo delegate:(id<WAAccountBindingDelegate>)delegate;
182 /*!
183  @discussion 查询绑定的第三方平台账户列表
184  @param block 回调
185  @error 错误
186  @accounts 数组accounts存放着WAAccount类型的对象.
187  */
188 +(void)queryBoundAccountWithCompleteBlock:(void(^)(NSError* error,NSArray<WAAccount *>* accounts))block;
189 /*!
190  @discussion 解绑账号接口
191  @param platform 解绑平台(WAAccount中的platform)
192  @param pUserId 第三方平台用户id(WAAccount中的pUserId)
193  */
194 +(void)unBindAccountWithPlatform:(NSString *const)platform platformUserId:(NSString*)pUserId completeBlock:(void(^)(NSError* error))completeBlock;
195 /*!
196  @discussion 切换账号接口
197  @param platform 切换平台
2e0222 198  @param completeBlock 回调结果:包括error(错误)和result(登录结果)
d1f6ab 199  */
H 200 +(void)switchAccountWithPlatform:(NSString *const)platform completeBlock:(void(^)(NSError* error,WALoginResult* result))completeBlock;
201
202 /*!
203  @discussion 创建账号接口
2e0222 204  @param completeBlock 回调结果:包括error(错误)和result(创建结果)
d1f6ab 205  */
H 206 +(void)createNewAccountWithCompleteBlock:(void(^)(NSError* error,WALoginResult* result))completeBlock;
207
208
209 /*!
210  @abstract 调用此方法打开登录界面
211  @param delegate 委托
212  @param cacheEnabled 是否缓存登录方式 当该参数为YES,默认以上次登录方式登录,不会弹出登录选择框。
213  */
214 +(void)login:(id<WALoginViewDelegate>)delegate cacheEnabled:(BOOL)cacheEnabled;
215 /*!
216  @abstract 调用此方法隐藏登录界面
217  */
218 +(void)hide;
219 /*!
220  @abstract 清除登录方式的缓存 清除缓存之后会再次弹出登录选择框
221  */
222 +(void)clearLoginCache;
223 /*!
224  @abstract 调用此方法打开账户管理界面
225  @param delegate 委托
226  */
227 +(void)openAccountManager:(id<WAAcctManagerDelegate>)delegate;
228
229 /*!
230  @abstract 获取账户信息
231  @param platform 平台
232  */
233 +(WAAppUser*)getAccountInfoWithPlatform:(NSString *const)platform;
234
235 //+(NSString*)transferWithPlatform:(NSString *const)platform;
236
56b891 237 + (void)getUserCenterNotice:(id<WAUserCenterNoticeDelegate>)delegate;
L 238
239 + (void)showUserCenterNoticeUI:(id<WAUserCenterNoticeUIDelegate>)delegate;
240
d1f6ab 241 /*!
H 242  @discussion 处理UIApplicationDelegate的方法[-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions]传递过来的参数。
243  */
244 + (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
245
246 /*!
2e0222 247  @discussion 处理UIApplicationDelegate的方法[- (void)applicationDidBecomeActive:(UIApplication *)application]传递过来的参数。
d1f6ab 248  */
2e0222 249 +(void)applicationDidBecomeActive:(UIApplication *)application;
H 250
251 /*!
252  @discussion 处理UIApplicationDelegate的方法[- (void)applicationWillEnterForeground:(UIApplication *)application]传递过来的参数。
253  */
254 +(void)applicationWillEnterForeground:(UIApplication *)application;
255
256 /*!
257  @discussion 处理UIApplicationDelegate的方法[- (void)applicationDidEnterBackground:(UIApplication *)application]传递过来的参数。
258  */
259 +(void)applicationDidEnterBackground:(UIApplication *)application;
d1f6ab 260
H 261 /*!
262  @discussion 处理UIApplicationDelegate的方法[-(BOOL)application:(UIApplication *)application
263  openURL:(NSURL *)url
264  sourceApplication:(NSString *)sourceApplication
265  annotation:(id)annotation]传递过来的参数。
266  */
267 +(BOOL)application:(UIApplication *)application
268            openURL:(NSURL *)url
269  sourceApplication:(NSString *)sourceApplication
270         annotation:(id)annotation;
271
272 /*!
273  @discussion (tip:CP无需关注)此方法为成功登录第三方平台之后调用。根据第三方平台的pUserId,pToken,platform构建一个WALoginResult实例作为参数调用此方法。此方法将会调用WindAnalytics的登录接口。
274  @param result 登录结果
275  @param delegate 委托
276  */
277 +(void)loginWithResult:(WALoginResult*)result delegate:(id<WALoginDelegate>)delegate;
278
279 +(void)loginWithResult:(WALoginResult*)result extInfo:(NSString*)extInfo delegate:(id<WALoginDelegate>)delegate;
280
281 /*!
282  @discussion (tip:CP无需关注)设置当前的登录平台
283  */
284 +(void)setCurrentLoginPlatform:(NSString *const)platform;
285 /*!
286  @discussion (tip:CP无需关注)获取当前的登录平台
287  */
288 +(NSString*)getCurrentLoginPlatform;
289 /*!
290  @discussion (tip:CP无需关注)获取当前的登录结果
291  */
292 +(WALoginResult*)getCurrentLoginResult;
293
294 /*!
295  @discussion (tip:CP无需关注)获取用户模块组件
296  */
297 +(NSArray*)getUserComponents;
298 @end