全部产品

分发消息

更新时间:2020-04-13 16:44:39

前端可以通过此接口给客户端发送通知,H5 会统一给传入的 name 标记加一个前缀 NEBULANOTIFY_,然后作为通知名称进行发送,如果您对这个通知感兴趣,监听的时候需要加前缀 NEBULANOTIFY_

在 Android 10.1.0 之前的版本中, postNotification 的 data 字段不得为空,addNotifyListener 才可以接受。而在 10.1.0 版本中,此限制已被取消,addNotifyListener 可以接受一个空数据。

Android 是通过 LocalBroadcastManager 发送的广播,可以通过监听 NEBULANOTIFY_ + name 来进行监听。

postNotification 接口的使用方法

  1. AlipayJSBridge.call('postNotification', {
  2. name:'fortest',
  3. data:{}
  4. }, function (result) {
  5. console.log(result);
  6. });

代码示例

以下示例为基本功能演示:

  1. <h1>请点击下面的按钮来进行测试</h1>
  2. <p>这里只测试在同一个页面内的情况,这个 API 可以在不同应用间通信</p>
  3. <a href="#" class="btn start">开始监听</a>
  4. <a href="#" class="btn stop">停止监听</a>
  5. <a href="#" class="btn send">发通知</a>
  6. <script>
  7. function callback(e){
  8. alert(JSON.stringify(e));
  9. };
  10. function ready(callback) {
  11. // 如果 jsbridge 已经注入则直接调用
  12. if (window.AlipayJSBridge) {
  13. callback && callback();
  14. } else {
  15. // 如果没有注入则监听注入的事件
  16. document.addEventListener('AlipayJSBridgeReady', callback, false);
  17. }
  18. }
  19. ready(function(){
  20. document.querySelector('.start').addEventListener('click', function(){
  21. AlipayJSBridge.call('addNotifyListener', {
  22. name:'NEBULANOTIFY_TEST_EVENT' // H5 发出的事件必须以 `NEBULANOTIFY_` 开通进行监听
  23. }, callback);
  24. });
  25. document.querySelector('.stop').addEventListener('click', function(){
  26. AlipayJSBridge.call('removeNotifyListener', {
  27. name:'NEBULANOTIFY_TEST_EVENT' // H5 发出的事件必须以 `NEBULANOTIFY_` 开通进行监听
  28. }, function(e){
  29. alert(JSON.stringify(e));
  30. });
  31. });
  32. document.querySelector('.send').addEventListener('click', function(){
  33. AlipayJSBridge.call('postNotification', {
  34. name:'TEST_EVENT', // H5 发出的事件必须以 `NEBULANOTIFY_` 开通进行监听
  35. data: {
  36. hello: 'world'
  37. }
  38. }, function(e){
  39. alert(JSON.stringify(e));
  40. });
  41. });
  42. });
  43. </script>

API

  1. AlipayJSBridge.call('postNotification', {
  2. name, data
  3. }, fn)

入参

名称 类型 描述 必选 默认值
name string 通知名称 Y “”
data object 通知给客户端带的信息,Android 下会把 json 数据遍历,然后把里面每一项的 value 都转成 string 类型发送,请注意兼容数据格式。 N -
fn function 回调函数 N -

出参

result: {success}:回调函数带入的参数。

名称 类型 描述
success bool 是否消息发送成功

错误码

错误码 描述
4 无权限调用