分發(fā)消息
更新時(shí)間:
前端可以通過此接口給客戶端發(fā)送通知,H5 會(huì)統(tǒng)一給傳入的 name
標(biāo)記加一個(gè)前綴 NEBULANOTIFY_
,然后作為通知名稱進(jìn)行發(fā)送。
在 Android 10.1.0 之前的版本中, postNotification
的 data
字段不得為空,addNotifyListener
才可以接受。而在 10.1.60 版本中,此限制已被取消,addNotifyListener
可以接受一個(gè)空數(shù)據(jù)。
Android 是通過 LocalBroadcastManager
發(fā)送的廣播,可以通過監(jiān)聽 NEBULANOTIFY_
+ name
來進(jìn)行監(jiān)聽。
postNotification 接口的使用方法
AlipayJSBridge.call('postNotification', {
name:'fortest',
data:{}
}, function (result) {
console.log(result);
});
代碼示例
以下示例為基本功能演示:
<h1>請(qǐng)點(diǎn)擊下面的按鈕來進(jìn)行測試</h1>
<p>這里只測試在同一個(gè)頁面內(nèi)的情況,這個(gè) API 可以在不同應(yīng)用間通信</p>
<a href="#" class="btn start">開始監(jiān)聽</a>
<a href="#" class="btn stop">停止監(jiān)聽</a>
<a href="#" class="btn send">發(fā)通知</a>
<script>
function callback(e){
alert(JSON.stringify(e));
};
function ready(callback) {
// 如果 jsbridge 已經(jīng)注入則直接調(diào)用
if (window.AlipayJSBridge) {
callback && callback();
} else {
// 如果沒有注入則監(jiān)聽注入的事件
document.addEventListener('AlipayJSBridgeReady', callback, false);
}
}
ready(function(){
document.querySelector('.start').addEventListener('click', function(){
AlipayJSBridge.call('addNotifyListener', {
name:'NEBULANOTIFY_TEST_EVENT' // H5 發(fā)出的事件必須以 `NEBULANOTIFY_` 開通進(jìn)行監(jiān)聽
}, callback);
});
document.querySelector('.stop').addEventListener('click', function(){
AlipayJSBridge.call('removeNotifyListener', {
name:'NEBULANOTIFY_TEST_EVENT' // H5 發(fā)出的事件必須以 `NEBULANOTIFY_` 開通進(jìn)行監(jiān)聽
}, function(e){
alert(JSON.stringify(e));
});
});
document.querySelector('.send').addEventListener('click', function(){
AlipayJSBridge.call('postNotification', {
name:'TEST_EVENT', // H5 發(fā)出的事件必須以 `NEBULANOTIFY_` 開通進(jìn)行監(jiān)聽
data: {
hello: 'world'
}
}, function(e){
alert(JSON.stringify(e));
});
});
});
</script>
API
AlipayJSBridge.call('postNotification', {
name, data
}, fn)
入?yún)?/h3>
名稱 | 類型 | 描述 | 必選 | 默認(rèn)值 |
name | string | 通知名稱。 | Y | “” |
data | object | 通知給客戶端帶的信息,Android 下會(huì)把 JSON 數(shù)據(jù)遍歷,然后把里面每一項(xiàng)的 Value 都轉(zhuǎn)成 String 類型發(fā)送,請(qǐng)注意兼容數(shù)據(jù)格式。 | N | - |
fn | function | 回調(diào)函數(shù)。 | N | - |
出參
result: {success}
:回調(diào)函數(shù)帶入的參數(shù)。
名稱 | 類型 | 描述 |
success | bool | 是否消息發(fā)送成功。 |
錯(cuò)誤碼
錯(cuò)誤碼 | 描述 |
4 | 無權(quán)限調(diào)用。 |
文檔內(nèi)容是否對(duì)您有幫助?