全部产品
Search
文档中心

SuperApp:小程序JsApi白标使用方法

更新时间:Jun 09, 2025

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中新增三个可配置项如下:

  1. superAppNameSpace 用于设置小程序访问JsApi的window对象名,默认值"WindVane"

  2. jsApiClassNamePrefix用于设置自定义JsApi类名前缀,默认值"WV"

  3. 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. 配置方法

  1. 对于 所有 小程序只使用"WindVane" NameSpace 和 "WV" ClassNamePrefix的用户,无需额外配置这三个配置项使用默认值即可。

  2. 对于 所有 小程序只使用 自定义 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];

}
  1. 对于部分小程序仍使用"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];

}