QSendNotification 发送和监听 三方(native, hy, rn) 互通的通知

API兼容性:
QRN:v2.5.0
iOS:80011140
Android:60001174

QSenNotification用来实现 rnhy 互通的广播, 通过传入 name 参数 (必须是 部门-业务-功能 这种格式的,例如:flight-booking-detail),来监听广播通知;

如果 name 类型有错误,会返回 errorCallback

addNotification 接收到的 subscription 需要在 removeNotification 的时候传入, 接收数据使用 dataCallback 回调接收;

一定记得 添加了 notification就必须要移除。

引入

import { QSendNotification } from 'qunar-react-native';

API

QSendNotification.sendNotification ({name, data})
发送全局广播,传入name,以及data,data字段为空时,没有数据发送,是一条空广播
QSendNotification.addNotification ({name, subscriptionCallback, dataCallback, errorCallback})
在需要的地方监听广播,传入要接收广播的name,拿到subscriptionCallback,dataCallback, 当name不符合要求的时候会返回errorCallback
QSendNotification.removeNotification( ({name, subscription, errorCallback})
在监听结束后记得移除监听,页面销毁的时候也要移除,传入name以及上面addNotification拿到的subscription, 当name不符合要求的时候会返回errorCallback 需要注意的是:只要注册了一个监听,就需要在使用监听完成后移除一个监听,不管是注册了截屏分享监听还是截屏分享及反馈监听,都需要在监听完成后移除监听。

使用说明


import { QSendNotification } from 'qunar-react-native';

//发送广播
QSendNotification.sendNotification({
               name: 'aaa-testNotify-bbb',
               data: {
                     message: 'a message'
                }
               
        })

//监听广播并接受数据
 QSendNotification.addNotification({
    // 广播名
          name: 'aaa-testNotify-bbb',
          subscriptionCallback: (subscription) => {
              testListener = subscription;
          },
          dataCallback: (data) => {
            alert(data);
          },
          errorCallback: (res) => {
            alert(res.error);
          }

 })

//移除监听
 QSendNotification.removeNotification({
               name: 'aaa-testNotify-bbb',
               subscription: testListener,
               errorCallback: (res) => {
                 alert(res.error);
               }
        })