BBASMPlugin+Lifecycle.h 5.05 KB
//
//  BBASMPlugin+Lifecycle.h
//  SWAN
//
//  Created by baidu on 2017/11/24.
//  Copyright © 2017年 baidu. All rights reserved.
//

#import "BBASMPlugin.h"
#import "BBASMPreDownloadPkgModel.h"

@interface BBASMPlugin (Lifecycle)

/**
 * 描  述: 打开小程序
 * 示  例: baiduboxapp://swan/hZPrR8cXXYgGHX2eGYOASkdmRyPkKcyT_dev15300/pages/video/video/?_baiduboxapp=%7B%22from%22%3A%22%22%2C%22ext%22%3A%7B%7D%7D&h5_url=v_19rrb5p8mw.html%3Fvfm%3D2008_aldbd&vfm=2008_aldbd&callback=_bdbox_js_959&upgrade=0
 * 文  档: http://es.baidu-int.com/#/apidetail/734
 * 备  注:
 * @jsnative_desc:
 {"name": "swan.open",
 "authority": "swan",
 "args": [
 {"name": "appKey","value": "string"},
 {"name": "path","value": "string="},
 {"name": "query","value": "Object="},
 {
    "name": "_baiduboxapp",
    "value": {
        "type": {
             "notinhis":"string=",
             "srcAppPage":"string=",
             "srcAppId":"string=",
             "extraData":"Object=",
             "ubc":"Object=",
             "navi":"string=",
             "ext":"Object=",
             "from":"string=",
             "backwardURL":"string="
        }
    }
 },
 {"name": "third_ext","value": "string="},
 {"name": "abtest","value": "string="},
 {"name": "oauthType", "value": "string="},
 {"name": "_swaninfo","value": "string="},
 {"name": "downloadUrl","value": "string="},
 {"name": "udid","value": "string="},
 {"name": "host","value": "string="},
 {"name": "cb","value": "string="},
 {"name": "port","value": "string="}],
 "config" : {"basic" : {"web": {"invoke": "iframe.openSwan"}}}
 }
 */
- (void)parse:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 调起小程序
 * 示  例: baiduboxapp://swanAPI/launch?params={"appid":"TZzPY8qVvX97uzIH4L2SnY0g","url":"pages/detail/detail?carid=39170627&yichenggou=1&seriesid=269&cityid=201","clkid":"xxxxxxxx"}&from=1201004510074000&slog={"type":"h5","from":"feed","source":"car","page":"youxin","nid":"carService","ext":{"subtag":"youxin"}}
 * 文  档: http://ft.baidu.com/#/scheme/swan_launch
 * 备  注:
 * @jsnative_desc:
 {"name" : "webView.launch",
 "authority" : "swanAPI",
 "path" : "/launch",
 "args" : [{"name": "appid",  "value": "string"},
           {"name": "url",  "value": "string="},
           {"name": "cb",  "value": "string="},
           {"name": "navi",  "value": "string="},
           {"name": "from",  "value": "string="},
           {"name": "extraData",  "value": "string|Object="}],
 "config" : {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"},
                      "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 }
 */
- (void)launch:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 预下载小程序、小游戏的代码包
 * 示  例: baiduboxapp://swanAPI/downloadPackages?params={"appKeys":["TZzPY8qVvX97uzIH4L2SnY0g","TZzPY8qVvX97uzIH4L2SnY0g"],"appType":"swangame","netconf":"0"}}
 * 文  档: http://ft.baidu.com/#/scheme/swan_downloadpackages
 * 备  注:
 * @jsnative_desc:
 {"name" : "downloadPackages",
 "authority" : "swanAPI",
 "path" : "/downloadPackages",
 "args" : [ {"name": "pageList", "value": {"arrayOf": "Object="}},
            {"name": "appKeys",  "value": {"arrayOf": "string="}},
            {"name": "appType",  "value": "string="},
            {"name": "netconf",  "value": "string="}],
 "config" : {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"},
                      "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.prefetchBridge.downloadPackages"}}}
 }
 */
- (void)downloadPackages:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 预取小程序数据
 * 示  例: baiduboxapp://swanAPI/prefetchAppData?params={"appKey":"TZzPY8qVvX97uzIH4L2SnY0g","state":"show","schema":"baiduboxapp://swanAPI/launch?params={"appid":"TZzPY8qVvX97uzIH4L2SnY0g"}}
 * 文  档: http://es.baidu-int.com/#/apidetail/824
 * 备  注:
 * @jsnative_desc:
{"name" : "prefetchAppData",
"authority" : "swanAPI",
"path" : "/prefetchAppData",
"args" : [{"name": "appKey",  "value": "string"},
          {"name": "schema",  "value": "string"},
          {"name": "scene",  "value": "string"},
          {"name": "state",  "value": "string"},
          {"name": "netconf",  "value": "string="}],
 "config" : {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"},
                     "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
}
*/
- (void)prefetchAppData:(BBASchemeDispatcher *)dispatcher;

/// 下载app包
/// @param appID 对应appID
/// @param paramDict 对应参数
+ (NSDictionary *)downloadPackages:(NSString *)appID
                            params:(NSDictionary *)paramDict;

/// 预加载app包
/// @param appID 对应appID
/// @param paramDict 对应参数
+ (NSDictionary *)preloadPackage:(NSString *)appID
                          params:(NSDictionary *)paramDict;

/// 获取预加载和预下载api控制策略配置
/// @param appID 对应appID
/// @param type api类型
+ (BBASMAPIControlConfig *)preAPIConfigWithAppID:(NSString *)appID
                                     controlType:(BBASMControlType)type;

@end