BBASMPlugin+OpenApp.h 5.61 KB
//
//  BBASMPlugin+OpenApp.h
//  SWAN
//
//  Created by baidu on 2018/4/9.
//  Copyright © 2018年 baidu. All rights reserved.
//

#import "BBASMPlugin.h"
#import "BBASMStoreProductViewController.h"
/**
 打开其它应用端能力
 */
@interface BBASMPlugin (OpenApp) <SKStoreProductViewControllerDelegate>

/**
 * 描  述: 打开其它应用 如果没有安装打开appStore下载页面
 * 示  例: baiduboxapp://swanAPI/openApp?params={"open":"","download":""}&callback=_bdbox_js_186&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_launchapp
 * 备  注: swan.openAppByURL
 * ********** description ************
 * @name:      app.insert
 * @authority: swanAPI
 * @path:      /openApp
 * @args:      [{"name": "open",  "value": "string"},  {"name": "download",  "value": "Object="},  {"name": "url",  "value": "string="},  {"name": "isNeedDownload",  "value": "boolean="},  {"name": "invokAnyWay",  "value": "boolean="}, {"name": "cb", "value": "string"}, {"name": "extraParams", "value": "Object="}, {"name": "invokeFrom", "value": "string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "webdegrade": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)openApp:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 打开其它应用 专为广告组件使用,不加鉴权
 * 示  例: baiduboxapp://swanAPI/openApp4Ad?params={"name":"","url":""}&callback=_bdbox_js_xxxx
 * 文  档: http://es.baidu-int.com/index#/apidetail/1268
 * 备  注: swan.openAdApp
 * ********** description ************
 * @name:      openAdApp.insert
 * @authority: swanAPI
 * @path:      /openApp4Ad
 * @args:      [{"name": "name",  "value": "string="},  {"name": "url",  "value": "string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)openApp4Ad:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 小程序APP支持静默下载、安装端能力
 * 示  例: baiduboxapp://swanAPI/installApp?params={}&callback=_bdbox_js_xxxx
 * 文  档: http://ft.baidu.com/#/scheme/swan_downloadadapp
 * 备  注:
 * ********** description ************
 * @name:      appInstallManager.install
 * @authority: swanAPI
 * @path:      /installApp
 * @args:      [{"name": "type", "value": {"oneOf": ["queryStatus", "startDownload", "pauseDownload", "cancelDownload", "installApp", "resumeDownload"]}}, {"name": "url", "value": "string="}, {"name": "appId", "value": "string="}, {"name": "name", "value": "string="}, {"name": "onProgressUpdate", "value": "string="}, {"name": "cb", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)installApp:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 调起AppStore内嵌下载页(供广告组件使用,不鉴权)
 * 示  例: baiduboxapp://swanAPI/installApp4Ad?params={"appId":"379395415"}&callback=_bdbox_js_xxxx'
 * 文  档: http://ft.baidu.com/#/scheme/swan_adrequest
 * 备  注:
 * ********** description ************
 * @name:      installApp4Ad
 * @authority: swanAPI
 * @path:      /installApp4Ad
 * @args:      [{"name": "type", "value": {"oneOf": ["queryStatus", "startDownload", "pauseDownload", "cancelDownload", "installApp", "resumeDownload"]}}, {"name": "url", "value": "string="}, {"name": "appId", "value": "string="}, {"name": "name", "value": "string="}, {"name": "onProgressUpdate", "value": "string="}, {"name": "cb", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)installApp4Ad:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 检查应用是否安装,iOS11.3.5开始支持d
 * 示  例: baiduboxapp://swanAPI/checkAppInstalled?params={}&callback=_bdbox_js_734
 * 文  档: http://ft.baidu.com/#/scheme/swan_checkappinstalled
 * 备  注:
 * ********** description ************
 * @name:      isAppInstalled
 * @authority: swanAPI
 * @path:      /checkAppInstalled
 * @args:      [{"name": "name", "value": "string|Array"}, {"name": "cb", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.utils.checkAppInstalled"}}}
 */
- (void)checkAppInstalled:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 宿主是否允许通过广告组件跳转其他App
 * 示  例: baiduboxapp://swanAPI/isAllowedAdOpenAppSync?params={}&callback=_bdbox_js_734
 * 文  档: http://es.baidu-int.com/#/apidetail/1305
 * 备  注:
 * ********** description ************
 * @name:      isAllowedAdOpenAppSync
 * @authority: swanAPI
 * @path:      /isAllowedAdOpenAppSync
 * @args:      []
 * @config:    {"swan": {"web": {"invoke": "swan.prompt"}, "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.utils.isAllowedAdOpenAppSync"}}}
 */
- (void)isAllowedAdOpenAppSync:(BBASchemeDispatcher *)dispatcher;

/**
 * @brief 检查应用是否安装,iOS11.3.5开始支持
 * @param params 端能力参数
 * @return NSDictionary 端能力调用结果
 */
+ (NSDictionary *)checkAppInstalledWithParams:(NSDictionary *)params
                                        appId:(NSString *)appId
                                   completion:(void (^)(NSDictionary *completionData, NSString *cb))completion;

/**
 * @brief 宿主是否允许通过广告组件跳转其他App
 */
+ (NSDictionary *)isAllowedAdOpenApp;

@end