此接口用于添加 native 通知的监听。
addNotifyListener 接口的使用方法
AlipayJSBridge.call('addNotifyListener', {
name:'fortest'
}, function (result) {
console.log(result);
});
代码示例
以下示例为基本功能演示:
<h1>请点击下面的按钮来进行测试</h1>
<p>这里只测试在同一个页面内的情况,这个 API 可以在不同应用间通信</p>
<a href="#" class="btn start">开始监听</a>
<a href="#" class="btn stop">停止监听</a>
<a href="#" class="btn send">发通知</a>
<script>
function callback(e) {
alert(JSON.stringify(e));
};
function ready(callback) {
// 如果 jsbridge 已经注入则直接调用
if (window.AlipayJSBridge) {
callback && callback();
} else {
// 如果没有注入则监听注入的事件
document.addEventListener('AlipayJSBridgeReady', callback, false);
}
}
ready(function(){
document.querySelector('.start').addEventListener('click', function() {
AlipayJSBridge.call('addNotifyListener', {
name:'NEBULANOTIFY_TEST_EVENT' // H5 发出的事件必须以 NEBULANOTIFY_ 开通进行监听
}, callback);
});
document.querySelector('.stop').addEventListener('click', function() {
AlipayJSBridge.call('removeNotifyListener', {
name:'NEBULANOTIFY_TEST_EVENT' // H5 发出的事件必须以 NEBULANOTIFY_ 开通进行监听
}, function(e) {
alert(JSON.stringify(e));
});
});
document.querySelector('.send').addEventListener('click', function() {
AlipayJSBridge.call('postNotification', {
name:'TEST_EVENT', // H5 发出的事件必须以 NEBULANOTIFY_ 开通进行监听
data: {
hello: 'world'
}
});
});
});
</script>
API
重要
在监听事件时,如果这个事件是 H5 发出来的,那么需要加上
NEBULANOTIFY_
前缀。在调用
addNotifyListener
时,为了避免多次 add 报错,请先做一次 remove 操作。如果 keep 设置为 false,那么事件触发一次后自动反注册监听。
Android 在回调中返回的 data 只有一层 key/value 键值对,其中 value 如果在 postNotification 时是 Object,则会被 Android 进行
JSON.stringify
操作,使用时建议使用try{ JSON.parse }
。
AlipayJSBridge.call('addNotifyListener', {
name, keep
}, fn)
入参
名称 | 类型 | 描述 | 必选 | 默认值 |
name | String | 通知名称。 | Y | “” |
keep | String | 是否在 ViewController 的生命周期内一直监听该通知。 | N | “true” |
fn | Function | 回调函数。 | N | - |
出参
result: {}
:回调函数带入的参数,对应为事件的消息。
错误码
错误码 | 描述 |
4 | 无权限调用 |
12 | 在一个页面中多次监听同名通知 |
文档内容是否对您有帮助?