O SDK permite configurar um namespace personalizado e um prefixo de nome de classe JSAPI para mini programs. Para ativar esse recurso, entre em contato conosco.
Comportamento padrão
Por padrão, os mini programs chamam JSAPIs usando o namespace WindVane e o prefixo de nome de classe WV:
const authorize = () =>{
window.WindVane.call('WVAuthorize', 'authorize', {}, function(e) { ... }, function(e) { ... });
};
document.addEventListener('WV.Event.WVBluetooth.characteristicValueChanged', function(e) { ... }, false);
Para usar um namespace e um prefixo personalizados, configure os seguintes parâmetros em EMASMiniAppInitConfig:
|
Parâmetro |
Tipo |
Padrão |
Descrição |
|
|
String |
|
Nome do objeto window que os mini programs usam para acessar JSAPIs. |
|
|
String |
|
Prefixo do nome de classe para chamadas de JSAPI e listeners de eventos. |
|
|
Boolean |
|
Define se deve manter compatibilidade com versões anteriores de mini programs que usam o namespace |
Configurar namespace e prefixo personalizados
Novos parâmetros
Para usar um namespace e um prefixo personalizados, configure os parâmetros a seguir em EMASMiniAppInitConfig:
superAppNameSpace: defina o nome do objeto window que os mini programs usam para acessar JSAPIs. O valor padrão é "WindVane".jsApiClassNamePrefix: defina o prefixo personalizado do nome de classe JSAPI. O valor padrão é "WV".windvaneBackwardCompatible: valor booleano que indica se a compatibilidade com versões anteriores deve ser mantida para mini programs que utilizam o namespaceWindVanee o prefixoWV. O valor padrão é true.
|
Parâmetro |
Tipo |
Padrão |
Descrição |
|
|
String |
|
Nome do objeto window que os mini programs usam para acessar JSAPIs. |
|
|
String |
|
Prefixo do nome de classe para chamadas de JSAPI e listeners de eventos. |
|
|
Boolean |
|
Define se deve manter compatibilidade com versões anteriores de mini programs que usam o namespace |
Defina os três parâmetros no método initConfig:
- (void)initConfig {
EMASMiniAppInitConfig *miniAppInitConfig = [EMASMiniAppInitConfig new];
...
// New configuration items
miniAppInitConfig.windvaneBackwardCompatible = YES;
miniAppInitConfig.superAppNameSpace = @"your NameSpace";
miniAppInitConfig.jsApiClassNamePrefix = @"your ClassNamePrefix";
...
EMASMiniAppServiceImpl *miniAppService = [EMASMiniAppServiceImpl new];
[miniAppService initialize:miniAppInitConfig];
}
Exemplo
Neste exemplo, superAppNameSpace é definido como "SuperApp" e jsApiClassNamePrefix como "SA":
- (void)initConfig {
EMASMiniAppInitConfig *miniAppInitConfig = [EMASMiniAppInitConfig new];
...
// New configuration items
miniAppInitConfig.windvaneBackwardCompatible = YES;
miniAppInitConfig.superAppNameSpace = @"SuperApp";
miniAppInitConfig.jsApiClassNamePrefix = @"SA";
...
EMASMiniAppServiceImpl *miniAppService = [EMASMiniAppServiceImpl new];
[miniAppService initialize:miniAppInitConfig];
}
Com essa configuração, o namespace muda de WindVane para SuperApp e o prefixo do nome de classe passa de WV para SA. O código a seguir mostra as chamadas de JSAPI antes e depois da alteração:
// JSAPI call before customization
const authorize = () =>{
window.WindVane.call('WVAuthorize', 'authorize', {}, function(e) { ... }, function(e) { ... });
};
document.addEventListener('WV.Event.WVBluetooth.characteristicValueChanged', function(e) { ... }, false);
// JSAPI call after customization
const authorize = () =>{
window.SuperApp.call('SAAuthorize', 'authorize', {}, function(e) { ... }, function(e) { ... });
};
document.addEventListener('SA.Event.SABluetooth.characteristicValueChanged', function(e) {
...
}, false);
Cenários de configuração
Escolha o cenário correspondente à implantação do seu mini program:
Apenas namespace padrão: se todos os seus mini programs usam o namespace padrão
WindVanee o prefixoWV, nenhuma configuração é necessária. O SDK aplica esses padrões automaticamente.Apenas namespace personalizado: caso todos os seus mini programs utilizem um namespace e prefixo personalizados, defina
windvaneBackwardCompatiblecomoNO:
- (void)initConfig {
EMASMiniAppInitConfig *miniAppInitConfig = [EMASMiniAppInitConfig new];
...
// New configuration items
miniAppInitConfig.windvaneBackwardCompatible = NO;
miniAppInitConfig.superAppNameSpace = @"your NameSpace";
miniAppInitConfig.jsApiClassNamePrefix = @"your ClassNamePrefix";
...
EMASMiniAppServiceImpl *miniAppService = [EMASMiniAppServiceImpl new];
[miniAppService initialize:miniAppInitConfig];
}
Misto: legado e personalizado: quando for necessário oferecer suporte tanto a mini programs mais antigos (que usam os identificadores
WindVane/WV) quanto aos mais recentes (com namespace e prefixo personalizados), definawindvaneBackwardCompatiblecomoYES:
- (void)initConfig {
EMASMiniAppInitConfig *miniAppInitConfig = [EMASMiniAppInitConfig new];
...
// New configuration items
miniAppInitConfig.windvaneBackwardCompatible = YES;
miniAppInitConfig.superAppNameSpace = @"your NameSpace";
miniAppInitConfig.jsApiClassNamePrefix = @"your ClassNamePrefix";
...
EMASMiniAppServiceImpl *miniAppService = [EMASMiniAppServiceImpl new];
[miniAppService initialize:miniAppInitConfig];
}