配置
1.1 协议名
BBASMPlatformAdapterProtocol
1.2 功能说明
配置小程序框架运行环境的参数、Extension 配置、预置小程序、自定义 userAgent 、端能力描述
1.3 接口列表
宿主方的配置信息
1 2 3 4 5 6 7 8 9 10 11 12 13
| @required
/** * @brief 设置宿主方的配置信息的union-cfg.json文件路径,来源于开源平台下的宿主配置数据,在小程序SDK2.26版替换“+ (NSDictionary *)hostConfig”接口 * @return NSString 返回当前宿主的union-cfg.json的文件路径 */ + (NSString *)hostConfigFilePath;
/** * @brief 获取端能力描述表需要存放的完整路径(zip文件) * @return 返回端能力描述表存放的完整路径 */ + (NSString *)pluginDescriptionPath;
|
Extension 配置
【注】从SDK2.29.0版本,以下扩展接口宿主不需要实现,扩展的extension.js包不需要预置到宿主工程中。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| @optional
/** * @brief 宿主私有端能力可以挂在宿主自己的命名空间下,需要保证该字段与私有端能力描述表name的前缀一致 * * @return NSString */ + (nullable NSString *)getExtensionName;
/** * @brief 获取预置extension包文件的完整路径,要求文件格式是zip * @return 返回预置extension包的完整路径 */ + (nullable NSString *)presetExtensionPackageBundlePath;
/** * @brief 获取预置extension包版本号 * @return 返回预置extension包版本号 */ + (nullable NSString *)presetExtensionPackageVersion;
/** * @brief 获取预置extension包版本 code * * @return extension包版本 code */ + (NSNumber *)presetExtensionPKGVersionCode;
|
预置小程序 & 小游戏包、SWANJS 包
1 2 3 4 5 6 7 8 9 10 11 12
| @optional /** * @brief 获取预置小程序/小游戏包的完整文件夹路径 * @return 返回预置小程序/小游戏包的完整文件夹路径 */ + (NSString *)presetSmartAppRootPath;
/** * @brief 是否不使用预置的小程序/游戏运行时环境(做包体积优化实现这个接口) * @return YES:不使用;NO:使用,默认为NO */ + (BOOL)isNoUsePresetCore;
|
自定义 userAgent
【注】微信 H5 直联支付时,如果宿主的配置信息中的 schemeHead 与微信开发者平台里设置的打开宿主 App 的协议头不匹配,需要实现 commonUserAgent 接口,保持与微信开发者平台里设置一致。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| @optional /** * @brief 自定义UA,不带webview信息,可以根据需要自行扩展 * * @return NSString,自定义UA */ + (nullable NSString *)commonUserAgent;
/** * @brief webView UA navigator.userAgent * * @return NSString,webView UA */ + (nullable NSString *)webViewUserAgent;
|
消息推送
方便宿主 server 与小程序建立映射关系,在发起 formid 、直连支付、聚合支付成功后,把当前小程序的标识传递出来。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| /** * @brief 方便宿主server与小程序建立映射关系,在发起formid、直连支付、聚合支付成功后,向宿主发起回调,宿主如果实现该接口,需要将message传给自己的server * * @param message push信息 ,未登录时传swanid * @message * @{ * @"swanid": @"传swanid", * @"appKey": @"小程序的appKey", * @"hostName": @"宿主的在小程序平台的标识名称" * } */ + (void)pushSMIdToHost:(NSDictionary *)message;
/** * @brief 方便宿主server与小程序建立映射关系,在发起formid、直连支付、聚合支付成功后,向宿主发起回调,宿主如果实现该接口,需要将message传给自己的server * * @param message push信息 ,登录时传openid * @message * @{ * @"openid": @"传openid", * @"appKey": @"小程序的appKey", * @"hostName": @"宿主的在小程序平台的标识名称" * } */ + (void)pushOpenIdToHost:(NSDictionary *)message;
|
三方库初始化
在宿主中启动入口,注册小程序运行时环境进行时,会提前初始化一些库,势必会引起这些库初始化冲突问题,为此,提供可选是否初始化接口。
1 2 3 4 5 6
| /** * @brief private:解决百度系内部产品共同初始化BDPAppearance库,引起冲突(该方法仅在百度系宿主可使用, 外部宿主方不必实现) * * @return NO: 小程序内部需要初始化BDPAppearance库(默认NO), YES:宿主必须自己初始化BDPAppearance库 */ + (BOOL)shouldNotInitBDPAppearance;
|
1.4 示例
参考:BBASMPlatformImplement