Descreve a API JavaScript WVStandardEventCenter, que permite enviar eventos de páginas H5 para um cliente nativo. Este canal é unidirecional (apenas de H5 para nativo) e destina-se a desenvolvedores de aplicações H5 e mini programas.
WVStandardEventCenter.postNotificationToNative
Envia um evento nomeado de uma página H5 para o cliente nativo. O nome do evento é arbitrário, mas as equipes de H5 e nativa devem defini-lo em conjunto antes do uso.
Escutar eventos no iOS
Use NSNotificationCenter para assinar o evento pelo nome.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myEventListener) name:eventName object:nil]
- (void)myEventListener:(NSNotification *)notification {
// Retrieve event parameters from notification.userInfo.
}
Escutar eventos no Android
Implemente WVEventListener e registre-o no WVEventService. O sistema despacha todos os eventos para onEvent; filtre por WVEventId.H5TONATIVE_EVENT para processar eventos enviados do H5.
@import android.taobao.windvane.service;
@import android.taobao.windvane.standardmodal
// Implement a listener that handles all WindVane events.
public class JsEventListener implements WVEventListener {
@Override
public WVEventResult onEvent(int id, WVEventContext ctx, Object... obj) {
// Filter for events sent from H5.
if (id == WVEventId.H5TONATIVE_EVENT) {
if (obj[0] instanceof String) {
String params = (String)obj[0];
// params is a JSON string containing the event name and parameters — deserialize before use.
}
}
return null;
}
}
// Register the listener to start receiving events.
WVEventService.getInstance().addEventListener(new JsEventListener());
Parâmetros de entrada
[
string]event: Nome do evento a enviar. Deve corresponder exatamente ao nome monitorado pela equipe nativa.[
object]param: (Opcional) Dados adicionais para enviar com o evento.
Parâmetros de callback
Apenas um callback é acionado por chamada: success ou failure, nunca ambos simultaneamente.
success: Invocado sem argumentos quando o cliente nativo recebe o evento.-
failure: Acionado com um objeto de erro se a entrega do evento falhar.var params = { event: 'eventName', param: { // Event parameters. } }; window.WindVane.call('WVStandardEventCenter','postNotificationToNative', params, function(e) { alert('success'); }, function(e) { alert('failure: ' + JSON.stringify(e)); });