全部产品
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. setSuperAppNameSpace(String nameSpace) 用于设置小程序访问JsApi的window对象名,默认值"WindVane"

  2. setJsApiClassNamePrefix(String classNamePrefix) 用于设置自定义JsApi类名前缀,默认值"WV"

  3. setWindVaneBackwardCompatible(boolean bool) 用于设置设否兼容老版本小程序,默认值true表示兼容老版本小程序

新增配置项&使用方法

a. 新增配置项

public static void init() {
    MiniAppInitConfig config = new MiniAppInitConfig.Builder()
            .setUseWindVane(true)
            .setHost("your.host.name")
            .setAppCode("your app code")
            .setAccessKey("your access key")
            .setSecretKey("your secret key")
    
            ...
    
            // 新增配置项 
            // new config item
            .setWindVaneBackwardCompatible(true)
            .setSuperAppNameSpace("your NameSpace")
            .setJsApiClassNamePrefix("your ClassNamePrefix")
    
            ...
    
            .build();
    IMiniAppService miniAppService = new MiniAppService();
    miniAppService.initialize(application, config);

}

使用案例

定义SuperAppNameSpace为SuperApp,JsApiClassNamePrefix为SA。

public static void init() {
    MiniAppInitConfig config = new MiniAppInitConfig.Builder()
    .setUseWindVane(true)
    .setHost("your.host.name")
    .setAppCode("your app code")
    .setAccessKey("your access key")
    .setSecretKey("your secret key")

    ...

    // 新增配置项 
    // new config item
    .setWindVaneBackwardCompatible(true)
    .setSuperAppNameSpace("SuperApp")
    .setJsApiClassNamePrefix("SA")

    ...

    .build();
    IMiniAppService miniAppService = new MiniAppService();
    miniAppService.initialize(application, config);

配置完成后,小程序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的用户,配置如下:

public static void init() {
    MiniAppInitConfig config = new MiniAppInitConfig.Builder()
            ...
    
            // 新增配置项 
            // new config item
            .setWindVaneBackwardCompatible(false)
            .setSuperAppNameSpace("your NameSpace")
            .setJsApiClassNamePrefix("your ClassNamePrefix")
    
            ...
    
            .build();
    IMiniAppService miniAppService = new MiniAppService();
    miniAppService.initialize(application, config);

}
  1. 对于部分小程序仍使用"WindVane" NameSpace 和 "WV" ClassNamePrefix,

对于部分新版本小程序使用 自定义 NameSpace 和 自定义 ClassNamePrefix的用户,

配置如下:

public static void init() {
    MiniAppInitConfig config = new MiniAppInitConfig.Builder()
            ...
    
            // 新增配置项 
            // new config item
            .setWindVaneBackwardCompatible(true)
            .setSuperAppNameSpace("your NameSpace")
            .setJsApiClassNamePrefix("your ClassNamePrefix")
    
            ...
    
            .build();
    IMiniAppService miniAppService = new MiniAppService();
    miniAppService.initialize(application, config);

}