Register listener to listen to native notification event.
AlipayJSBridge.call('addNotifyListener', {
name:'fortest'
}, function(result) {
console.log(result);
});
<h1>Please click on the buttons below</h1>
<p>Although the following test is conducted in one page, you can use this API to listen to events happens in other pages</p>
<a href="#" class="btn start">Start Listening</a>
<a href="#" class="btn stop">Stop Listening</a>
<a href="#" class="btn send">Notify</a>
<script>
function callback(e) {
alert(JSON.stringify(e));
};
function ready(callback) {
// Invoke directly if JSBridge is already injected
if (window.AlipayJSBridge) {
callback && callback();
} else {
// Otherwise listen to `AlipayJSBridgeReady` event
document.addEventListener('AlipayJSBridgeReady', callback, false);
}
}
ready(function(){
document.querySelector('.start').addEventListener('click', function() {
AlipayJSBridge.call('addNotifyListener', {
name:'NEBULANOTIFY_TEST_EVENT'
// H5 event name must be prefixed with NEBULANOTIFY_
}, callback);
});
document.querySelector('.stop').addEventListener('click', function() {
AlipayJSBridge.call('removeNotifyListener', {
name:'NEBULANOTIFY_TEST_EVENT' // H5 event name must be prefixed with NEBULANOTIFY_
}, function(e) {
alert(JSON.stringify(e));
});
});
document.querySelector('.send').addEventListener('click', function() {
AlipayJSBridge.call('postNotification', {
name:'NEBULANOTIFY_TEST_EVENT', // H5 event name must be prefixed with NEBULANOTIFY_
data: {
hello: 'world'
}
});
});
});
</script>
AlipayJSBridge.call('addNotifyListener', {
name, keep
}, fn)
| Name | Type | Description | Mandatory | Default | |
|---|---|---|---|---|---|
| name | string | Name of notification | Y | ||
| keep | string | Whether or not to keep listening to this event within the lifecycle of ViewController | N | true | |
| fn | function | Callback function | N |
The event data is described in parameter
result:{}that passed to the callback function
| Error | Description |
|---|---|
| 4 | No permission |
| 12 | Duplicated event name in the same page |
NEBULANOTIFY_ if the event is to be emitted from H5 pageremoveNotifyListener before calling addNotifyListener to avoid duplicated event nameskeep is set to falseJSON.parse to extract the data in a try and catch block