// // WAUserProxy.h // WASdkIntfUI // // Created by GHW-T-01 on 16/3/1. // Copyright 漏 2016骞� GHW-T-01. All rights reserved. // #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> #import "WALoginResult.h" #import "WABindingResult.h" #import "WAAccount.h" #import "WAAppUser.h" /*! @discussion 鐧诲綍鍗忚 - - - */ @protocol WALoginDelegate <NSObject> @required /*! @abstract 鐧诲綍鎴愬姛 @param result 鐧诲綍缁撴灉 */ -(void)loginDidCompleteWithResults:(WALoginResult*)result; /*! @abstract 鐧诲綍澶辫触 @param result 鐧诲綍鐨勭敤鎴蜂俊鎭� 娉�:杩欎笉鏄櫥褰曠粨鏋�,鐢变簬鐧诲綍澶辫触鎵€浠serId鏄┖鐨�.浣嗗鏋滅涓夋柟骞冲彴(Facebook,Apple)鎺堟潈鎴愬姛,pUserId,pToken,extends涓嶄负绌�,鍙敤浜庢彁绀虹敤鎴�. @param error 閿欒 */ -(void)loginDidFailWithError:(NSError*)error andResult:(WALoginResult*)result; @optional /*! @abstract 鐢ㄦ埛鍙栨秷鐧诲綍 @param result 鐧诲綍鐨勮处鎴蜂俊鎭� (娉�:杩斿洖鐨剅esult鍙湁platform鏈夊€�) */ -(void)loginDidCancel:(WALoginResult*)result; @end /*! @discussion 璐︽埛缁戝畾鍗忚 - - - */ @protocol WAAccountBindingDelegate <NSObject> @required /*! @abstract 缁戝畾鎴愬姛 @param result 缁戝畾鐨勮处鎴蜂俊鎭� */ -(void)bindingDidCompleteWithResult:(WABindingResult*)result; /*! @abstract 缁戝畾澶辫触 @param result 缁戝畾鐨勮处鎴蜂俊鎭� @param error 閿欒 */ -(void)bindingDidFailWithError:(NSError*)error andResult:(WABindingResult*)result; @optional /*! @abstract 缁戝畾鍙栨秷 @param result 缁戝畾鐨勮处鎴蜂俊鎭�(娉�:杩斿洖鐨剅esult鍙湁platform鏈夊€�) */ -(void)bindingDidCancel:(WABindingResult*)result; @end /*! @discussion 鐧诲綍鐣岄潰鍗忚 - - - */ @protocol WALoginViewDelegate <NSObject> @required /*! @abstract 鐧诲綍鎴愬姛 @param result 鐧诲綍鐨勭敤鎴蜂俊鎭� */ -(void)loginViewDidCompleteWithResult:(WALoginResult*)result; /*! @abstract 鐧诲綍澶辫触 @param result 鐧诲綍鐨勭敤鎴蜂俊鎭� 娉�:杩欎笉鏄櫥褰曠粨鏋�,鐢变簬鐧诲綍澶辫触鎵€浠serId鏄┖鐨�.浣嗗鏋滅涓夋柟骞冲彴(Facebook,Apple)鎺堟潈鎴愬姛,pUserId,pToken,extends涓嶄负绌�,鍙敤浜庢彁绀虹敤鎴�. @param error 閿欒 */ -(void)loginViewDidFailWithError:(NSError*)error andResult:(WALoginResult*)result; @optional /*! @abstract 鐢ㄦ埛鍙栨秷鐧诲綍 @param result 鐧诲綍鐨勭敤鎴蜂俊鎭紙鍙湁platform闈炵┖锛�. */ -(void)loginViewDidCancel:(WALoginResult*)result; @end /*! @discussion 璐﹀彿绠$悊鐣岄潰鍗忚 - - - */ @protocol WAAcctManagerDelegate <NSObject> @required /*! @abstract 鏂板缓璐︽埛鍥炶皟鎺ュ彛 @param result 鏂板缓璐︽埛鐨勮处鎴蜂俊鎭� */ -(void)newAcctDidCompleteWithResult:(WALoginResult*)result; /*! @abstract 鍒囨崲璐︽埛鍥炶皟鎺ュ彛 @param result 鍒囨崲璐︽埛鐨勮处鎴蜂俊鎭� */ -(void)switchAcctDidCompleteWithResult:(WALoginResult*)result; @end /*! @discussion WAUserProxy 鏄敤鎴锋ā鍧楃殑浠g悊绫汇€傚姛鑳藉寘鎷缃櫥褰曟祦绋嬨€佺櫥褰曘€佺櫥鍑恒€佺粦瀹氥€佽В缁戙€佹煡璇㈠綋鍓嶇敤鎴风粦瀹氱殑绗笁鏂瑰钩鍙拌处鎴峰垪琛ㄣ€佸垏鎹㈣处鍙枫€佸垱寤鸿处鍙风瓑绛夈€� - - - */ @interface WAUserProxy : NSObject /*! @discussion 璁剧疆鐧诲綍娴佺▼ @param flowType 甯搁噺WA_LOGIN_FLOW_TYPE_DEFAULT鏄粯璁ゆā寮忥紝琛ㄧず鍒囨崲鏂拌处鎴风殑鏃跺€欎笉杩涜璁惧缁戝畾鎿嶄綔锛屼笅娆¤皟鐢ㄥ尶鍚嶇櫥褰曡繕鏄櫥褰曚箣鍓嶇殑璐︽埛銆傚父閲廤A_LOGIN_FLOW_TYPE_REBIND鍒囨崲鏂拌处鎴风殑鏃跺€欏皢褰撳墠璁惧鐨刢lientId缁戝畾鍒版柊璐︽埛涓紝涓嬩竴娆″尶鍚嶇櫥褰曠殑鏃跺€欏皢浼氱櫥褰曞埌鏂拌处鎴枫€� */ +(void)setLoginFlowType:(int)flowType; /*! @discussion 鑾峰彇鐧诲綍娴佺▼ */ +(int)getLoginFlowType; /*! @discussion 鐧诲綍鎺ュ彛 @param platform 鐧诲綍骞冲彴锛氱洰鍓嶇殑鐧诲綍骞冲彴鏈塅acebook锛孉pple锛孏UEST,瀵瑰簲鐨勫父閲忓垎鍒槸WA_PLATFORM_FACEBOOK锛學A_PLATFORM_APPLE锛學A_PLATFORM_WINGA銆� @param extInfo 鎵╁睍淇℃伅 @param delegate 濮旀墭 */ +(void)loginWithPlatform:(NSString *const)platform extInfo:(NSString*)extInfo delegate:(id<WALoginDelegate>)delegate; /*! @discussion 鐧诲嚭鎺ュ彛 */ +(void)logout; /*! @discussion 缁戝畾璐︽埛鎺ュ彛 @param platform 缁戝畾骞冲彴:鐩墠鏈塅acebook,Apple,瀵瑰簲鐨勫父閲忓垎鍒负WA_PLATFORM_FACEBOOK,WA_PLATFORM_APPLE @param extInfo 鎵╁睍淇℃伅 @param delegate 濮旀墭 */ +(void)bindingAccountWithPlatform:(NSString *const)platform extInfo:(NSString*)extInfo delegate:(id<WAAccountBindingDelegate>)delegate; /*! @discussion 鏌ヨ缁戝畾鐨勭涓夋柟骞冲彴璐︽埛鍒楄〃 @param block 鍥炶皟 @error 閿欒 @accounts 鏁扮粍accounts瀛樻斁鐫€WAAccount绫诲瀷鐨勫璞�. */ +(void)queryBoundAccountWithCompleteBlock:(void(^)(NSError* error,NSArray<WAAccount *>* accounts))block; /*! @discussion 瑙g粦璐﹀彿鎺ュ彛 @param platform 瑙g粦骞冲彴(WAAccount涓殑platform) @param pUserId 绗笁鏂瑰钩鍙扮敤鎴穒d(WAAccount涓殑pUserId) */ +(void)unBindAccountWithPlatform:(NSString *const)platform platformUserId:(NSString*)pUserId completeBlock:(void(^)(NSError* error))completeBlock; /*! @discussion 鍒囨崲璐﹀彿鎺ュ彛 @param platform 鍒囨崲骞冲彴 @param completeBlock 鍥炶皟缁撴灉锛氬寘鎷琫rror(閿欒)鍜宺esult(鐧诲綍缁撴灉) */ +(void)switchAccountWithPlatform:(NSString *const)platform completeBlock:(void(^)(NSError* error,WALoginResult* result))completeBlock; /*! @discussion 鍒涘缓璐﹀彿鎺ュ彛 @param completeBlock 鍥炶皟缁撴灉锛氬寘鎷琫rror(閿欒)鍜宺esult(鍒涘缓缁撴灉) */ +(void)createNewAccountWithCompleteBlock:(void(^)(NSError* error,WALoginResult* result))completeBlock; /*! @abstract 璋冪敤姝ゆ柟娉曟墦寮€鐧诲綍鐣岄潰 @param delegate 濮旀墭 @param cacheEnabled 鏄惁缂撳瓨鐧诲綍鏂瑰紡 褰撹鍙傛暟涓篩ES锛岄粯璁や互涓婃鐧诲綍鏂瑰紡鐧诲綍锛屼笉浼氬脊鍑虹櫥褰曢€夋嫨妗嗐€� */ +(void)login:(id<WALoginViewDelegate>)delegate cacheEnabled:(BOOL)cacheEnabled; /*! @abstract 璋冪敤姝ゆ柟娉曢殣钘忕櫥褰曠晫闈� */ +(void)hide; /*! @abstract 娓呴櫎鐧诲綍鏂瑰紡鐨勭紦瀛� 娓呴櫎缂撳瓨涔嬪悗浼氬啀娆″脊鍑虹櫥褰曢€夋嫨妗� */ +(void)clearLoginCache; /*! @abstract 璋冪敤姝ゆ柟娉曟墦寮€璐︽埛绠$悊鐣岄潰 @param delegate 濮旀墭 */ +(void)openAccountManager:(id<WAAcctManagerDelegate>)delegate; /*! @abstract 鑾峰彇璐︽埛淇℃伅 @param platform 骞冲彴 */ +(WAAppUser*)getAccountInfoWithPlatform:(NSString *const)platform; //+(NSString*)transferWithPlatform:(NSString *const)platform; /*! @discussion 澶勭悊UIApplicationDelegate鐨勬柟娉昜-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions]浼犻€掕繃鏉ョ殑鍙傛暟銆� */ + (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; /*! @discussion 澶勭悊UIApplicationDelegate鐨勬柟娉昜- (void)applicationDidBecomeActive:(UIApplication *)application]浼犻€掕繃鏉ョ殑鍙傛暟銆� */ +(void)applicationDidBecomeActive:(UIApplication *)application; /*! @discussion 澶勭悊UIApplicationDelegate鐨勬柟娉昜- (void)applicationWillEnterForeground:(UIApplication *)application]浼犻€掕繃鏉ョ殑鍙傛暟銆� */ +(void)applicationWillEnterForeground:(UIApplication *)application; /*! @discussion 澶勭悊UIApplicationDelegate鐨勬柟娉昜- (void)applicationDidEnterBackground:(UIApplication *)application]浼犻€掕繃鏉ョ殑鍙傛暟銆� */ +(void)applicationDidEnterBackground:(UIApplication *)application; /*! @discussion 澶勭悊UIApplicationDelegate鐨勬柟娉昜-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation]浼犻€掕繃鏉ョ殑鍙傛暟銆� */ +(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation; /*! @discussion 锛坱ip:CP鏃犻渶鍏虫敞锛夋鏂规硶涓烘垚鍔熺櫥褰曠涓夋柟骞冲彴涔嬪悗璋冪敤銆傛牴鎹涓夋柟骞冲彴鐨刾UserId锛宲Token锛宲latform鏋勫缓涓€涓猈ALoginResult瀹炰緥浣滀负鍙傛暟璋冪敤姝ゆ柟娉曘€傛鏂规硶灏嗕細璋冪敤WindAnalytics鐨勭櫥褰曟帴鍙c€� @param result 鐧诲綍缁撴灉 @param delegate 濮旀墭 */ +(void)loginWithResult:(WALoginResult*)result delegate:(id<WALoginDelegate>)delegate; +(void)loginWithResult:(WALoginResult*)result extInfo:(NSString*)extInfo delegate:(id<WALoginDelegate>)delegate; /*! @discussion 锛坱ip:CP鏃犻渶鍏虫敞锛夎缃綋鍓嶇殑鐧诲綍骞冲彴 */ +(void)setCurrentLoginPlatform:(NSString *const)platform; /*! @discussion 锛坱ip:CP鏃犻渶鍏虫敞锛夎幏鍙栧綋鍓嶇殑鐧诲綍骞冲彴 */ +(NSString*)getCurrentLoginPlatform; /*! @discussion 锛坱ip:CP鏃犻渶鍏虫敞锛夎幏鍙栧綋鍓嶇殑鐧诲綍缁撴灉 */ +(WALoginResult*)getCurrentLoginResult; /*! @discussion 锛坱ip:CP鏃犻渶鍏虫敞锛夎幏鍙栫敤鎴锋ā鍧楃粍浠� */ +(NSArray*)getUserComponents; @end