全部產品
Search
文件中心

SuperApp:小程式JsApi白標使用方法

更新時間:Jun 10, 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);

}