BBASMPlugin.h 3.82 KB
//
//  BBASMPlugin.h
//  SWAN
//
//  Created by baidu on 2017/10/24.
//  Copyright © 2018年 baidu. All rights reserved.
//



#import <BBASchemeDispatcher/BBASchemeDispatcher.h>
#import "BBASchemeDispatcher+SMRedirectPlugin.h"

#define BBASMC_PluginModule BBASM_UNCONFUSED_STR_METHOD(@"bW5wX3N3YW4=") //mnp_swan
#define BBASM_Plugin_CB_key @"cb"

@interface BBASMPlugin : BBASDPluginBase

/**
 * 描  述: 根据webviewid获取小程序相关web页面,然后执行message消息的派发
 * 示  例: baiduboxapp://swanAPI/postMessage?params=\$params&callback=\$callback
 * 文  档: http://ft.baidu.com/#/scheme/miniprogram_postmessage
 * 备  注: !!!: 10.9.5优化master&slave通信方案,前端通过通信桥直接发送object对象:
 {"message":"XXXX",
 "webviewid":"master"}
 到客户端,本应废弃该端能力,但是发现个别小程序中的webview组件依然在使用这种方式触发message消息,故本端能力暂时保留,等待小程序发版更新写法
 * @jsnative_desc:
 {"name"      : "postMessage",
  "authority" : "swanAPI",
  "path"      : "/postMessage",
  "args"      : [{"name": "webviewid", "value": "string"},
                 {"name": "message", "value": "string"}],
  "config"    : {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"},
                          "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 }
 */


- (void)postMessage:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 小程序同步获取的页面的SlaveId
 * 示  例: baiduboxapp://swanAPI/getSlaveIdSync?callback=\$callback
 * 文  档: http://ft.baidu.com/#/scheme/swan_getslaveidsync
 * 备  注:
 * ********** description ************
 * @name:      getSlaveIdSync
 * @authority: swanAPI
 * @path:      /getSlaveIdSync
 * @args:      []
 * @config:    {"swan": {"web": {"invoke": "swan.prompt"}, "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.getSlaveIdSync"}}}
 */
- (void)getSlaveIdSync:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 获取城市省份信息
 * 示  例: baiduboxapp://swanAPI/getRegionData?callback=_bdbox_js_353&upgrade=0&oauthType=swan
 * 文  档: http://ft.baidu.com/#/scheme/swan_getregiondata
 * 备  注:
 * ********** description ************
 * @name:      getAppInfoSync
 * @authority: swanAPI
 * @path:      /getAppInfoSync
 * @args:      []
 * @config:    {"swan": {"web": {"invoke": "swan.prompt"}, "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.getAppInfoSync"}}}
 */
- (void)getAppInfoSync:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 获取城市省份信息
 * 示  例: baiduboxapp://swanAPI/getRegionData?callback=_bdbox_js_353&upgrade=0&oauthType=swan
 * 文  档: http://ft.baidu.com/#/scheme/swan_getregiondata
 * 备  注:
 * @jsnative_desc:
 {"name"      : "getRegionData",
 "authority" : "swanAPI",
 "path"      : "/getRegionData",
 "args"      : [],
 "config"    : {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"},
                 "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 }
 */
- (void)getRegionData:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 小程序框架预加载swancore前端通知客户端相应webview的JS加载完成,用于统计预加载swancore耗时
 * 示  例: baiduboxapp://swanAPI/onSwanJSLoaded?callback=$callback
 * 文  档: http://ft.baidu.com/#/scheme/swan_onswanjsloaded
 * 备  注:
 * @jsnative_desc:
 {"name"      : "onSwanJSLoaded",
 "authority" : "swanAPI",
 "path"      : "/onSwanJSLoaded",
 "args"      : [],
 "config"    : {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"},
                 "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 }
 */
- (void)onSMJSLoaded:(BBASchemeDispatcher *)dispatcher;


#pragma mark - not API
+ (NSDictionary *)getAppInfoWithAppID:(NSString *)appID;
@end