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中新增三個可配置項如下:
setSuperAppNameSpace(String nameSpace) 用於設定小程式訪問JsApi的window對象名,預設值"WindVane"
setJsApiClassNamePrefix(String classNamePrefix) 用於設定自訂JsApi類名首碼,預設值"WV"
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. 配置方法
對於 所有 小程式只使用"WindVane" NameSpace 和 "WV" ClassNamePrefix的使用者,無需額外配置這三個配置項使用預設值即可。
對於 所有 小程式只使用 自訂 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);
}對於部分小程式仍使用"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);
}