全部产品
云市场
云游戏

添加通知

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

此接口用于添加 native 通知的监听。

addNotifyListener 接口的使用方法

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

代码示例

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

  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. });
  39. });
  40. });
  41. </script>

API

  1. AlipayJSBridge.call('addNotifyListener', {
  2. name, keep
  3. }, fn)

入参

名称 类型 描述 必选 默认值
name string 通知名称 Y “”
keep string 是否在 ViewController 的生命周期内一直监听该通知 N “true”
fn function 回调函数 N -

出参

result: {}:回调函数带入的参数,对应为事件的消息。

错误码

错误码 描述
4 无权限调用
12 在一个页面中多次监听同名通知

注意事项

  • 在监听事件时,如果这个事件是 H5 发出来的,那么需要加上 NEBULANOTIFY_ 前缀。
  • addNotifyListener 时,为了保险,先做一次 remove 操作,避免多次 add 报错。
  • 如果 keep 设置为 false,那么事件触发一次后自动反注册监听。
  • Android 在回调中返回的 data 只有一层 key/value 键值对,其中 value 如果在 postNotification 时是 Object,则会被 Android 进行 JSON.stringify 操作,使用时建议自行 try{ JSON.parse }