SDK开发可配置自定义通道和JSAPI前缀,如需使用此功能请联系我们。
简介
const authorize = () =>{
window.WindVane.call('WVAuthorize', 'authorize', {}, function(e) { ... }, function(e) { ... });
};
document.addEventListener('WV.Event.WVBluetooth.characteristicValueChanged', function(e) { ... }, false);如上述代码片段所示,有的客户不希望在小程序代码中使用"WindVane","WV"标识。希望能够对上述标识进行自定义。因此config中新增三个可配置项如下:
superAppNameSpace 用于设置小程序访问JsApi的window对象名,默认值"WindVane"
jsApiClassNamePrefix用于设置自定义JsApi类名前缀,默认值"WV"
windvaneBackwardCompatible 用于设置是否兼容老版本小程序,默认值true表示兼容老版本小程序
新增配置项&使用方法
a. 新增配置项
- (void)initConfig {
EMASMiniAppInitConfig *miniAppInitConfig = [EMASMiniAppInitConfig new];
...
// 新增配置项 new config item
miniAppInitConfig.windvaneBackwardCompatible = YES;
miniAppInitConfig.superAppNameSpace = @"your NameSpace";
miniAppInitConfig.jsApiClassNamePrefix = @"your ClassNamePrefix";
...
EMASMiniAppServiceImpl *miniAppService = [EMASMiniAppServiceImpl new];
[miniAppService initialize:miniAppInitConfig];
}使用案例
定义SuperAppNameSpace为SuperApp,JsApiClassNamePrefix为SA。
- (void)initConfig {
EMASMiniAppInitConfig *miniAppInitConfig = [EMASMiniAppInitConfig new];
...
// 新增配置项 new config item
miniAppInitConfig.windvaneBackwardCompatible = YES;
miniAppInitConfig.superAppNameSpace = @"SuperApp";
miniAppInitConfig.jsApiClassNamePrefix = @"SA";
...
EMASMiniAppServiceImpl *miniAppService = [EMASMiniAppServiceImpl new];
[miniAppService initialize:miniAppInitConfig];
}配置完成后,小程序JSAPI调用对比。
// 自定义前调用jsapi
// Call jsapi before customization
const authorize = () =>{
window.WindVane.call('WVAuthorize', 'authorize', {}, function(e) { ... }, function(e) { ... });
};
document.addEventListener('WV.Event.WVBluetooth.characteristicValueChanged', function(e) { ... }, false);
// 自定义后调用jsapi
// Call jsapi after customization
const authorize = () =>{
window.SuperApp.call('SAAuthorize', 'authorize', {}, function(e) { ... }, function(e) { ... });
};
document.addEventListener('SA.Event.SABluetooth.characteristicValueChanged', function(e) {
...
}, false);如上述代码片段显示如果将NameSpace和ClassNamePrefix分别设置为"SuperApp" 和 "SA"。小程序调用JsApi时NameSpace由 WindVane -> SuperApp,ClassNamePrefix由 WV... -> SA...
b. 配置方法
对于 所有 小程序只使用"WindVane" NameSpace 和 "WV" ClassNamePrefix的用户,无需额外配置这三个配置项使用默认值即可。
对于 所有 小程序只使用 自定义 NameSpace 和 自定义 ClassNamePrefix的用户,配置如下:
- (void)initConfig {
EMASMiniAppInitConfig *miniAppInitConfig = [EMASMiniAppInitConfig new];
...
// 新增配置项 new config item
miniAppInitConfig.windvaneBackwardCompatible = NO;
miniAppInitConfig.superAppNameSpace = @"your NameSpace";
miniAppInitConfig.jsApiClassNamePrefix = @"your ClassNamePrefix";
...
EMASMiniAppServiceImpl *miniAppService = [EMASMiniAppServiceImpl new];
[miniAppService initialize:miniAppInitConfig];
}对于部分小程序仍使用"WindVane" NameSpace 和 "WV" ClassNamePrefix,部分新版本小程序使用 自定义 NameSpace 和 自定义 ClassNamePrefix的用户,配置如下:
- (void)initConfig {
EMASMiniAppInitConfig *miniAppInitConfig = [EMASMiniAppInitConfig new];
...
// 新增配置项 new config item
miniAppInitConfig.windvaneBackwardCompatible = YES;
miniAppInitConfig.superAppNameSpace = @"your NameSpace";
miniAppInitConfig.jsApiClassNamePrefix = @"your ClassNamePrefix";
...
EMASMiniAppServiceImpl *miniAppService = [EMASMiniAppServiceImpl new];
[miniAppService initialize:miniAppInitConfig];
}