BBASMPlugin+GetOpenId.h 2.78 KB
//
//  BBASMPlugin+GetOpenId.h
//  BBAMNP
//
//  Created by baidu on 2020/7/16.
//  Copyright © 2020 Baidu. All rights reserved.
//
#import "BBASMPlugin.h"
#import "BBASMAuthorizeProtocol.h"

NS_ASSUME_NONNULL_BEGIN

typedef NS_ENUM(NSUInteger, BBASMGetLoginCodeErrorType) {
    BBASMGetLoginCodeErrorTypeServer,
    BBASMGetLoginCodeErrorTypeInternal
};

typedef void(^BBASMGetLoginCodeSuccessCallback)(NSString * _Nullable loginCode);
typedef void(^BBASMGetLoginCodefailCallback)(BBASMGetLoginCodeErrorType errorType, NSDictionary * _Nullable errorInfo);

@interface BBASMPlugin (GetOpenId)

/**
 * 描  述: 获取openid的端能力,支持开源
 * 示  例: baiduboxapp://swanAPI/getOpenId?params=%7B%22cb%22%3A%22formCallback_1534911820061__3ad3%22%7D&callback=_bdbox_js_751&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_getformid
 * 备  注:
 * ********** description ************
 * @name:      boxjs.getOpenId
 * @authority: swanAPI
 * @path:      /getOpenId
 * @args:      [{"name": "cb", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.utils.getOpenId"}}}
 */
- (void)getOpenId:(BBASchemeDispatcher *)dispatcher;


/**
 * 描  述: 获取loginCode
 * 示  例: baiduboxapp://swanAPI/getLoginCode?params=%7B%22cb%22%3A%22_bdbox_pjs_264%22%7D&callback=_bdbox_js_294&upgrade=0&oauthType=swan
 * 文  档: http://ft.baidu.com/#/scheme/swan_getswanid
 * 备  注:
 * ********** description ************
 * @name:      getLoginCode
 * @authority: swanAPI
 * @path:      /getLoginCode
 * @args:      [{"name": "cb", "value": "string"}, {"name": "timeout", "value": "number="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "webdegrade": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.utils.getLoginCode"}}}
 */
- (void)getLoginCode:(BBASchemeDispatcher *)dispatcher;


+ (NSDictionary *)getOpenIdWithAppID:(NSString *)appID
                          completion:(void (^)(NSDictionary *data))completion;


/**
 * @brief 获取loginCode
 *
 * @param appID          appID
 * @param pluginID   pluginID
 * @param timeout     超时时间
 * @param success     成功二级回调
 * @param fail            失败二级回调
 * @return result
 */
+ (NSDictionary *)getLoginCodeWithAppID:(NSString *)appID
                               pluginID:(NSString * _Nullable)pluginID
                                timeout:(NSNumber * _Nullable)timeout
                                  scene:(BBASMLoginSceneType)sceneType
                                success:(BBASMGetLoginCodeSuccessCallback)success
                                   fail:(BBASMGetLoginCodefailCallback)fail;

@end

NS_ASSUME_NONNULL_END