三方(native, hy, rn)
互通的通知API兼容性:
QRN:v2.5.0
iOS:80011140
Android:60001174
QSenNotification
用来实现 rn
和 hy
互通的广播, 通过传入 name
参数 (必须是 部门-业务-功能
这种格式的,例如:flight-booking-detail
),来监听广播通知;
如果 name
类型有错误,会返回 errorCallback
;
addNotification
接收到的 subscription
需要在 removeNotification
的时候传入, 接收数据使用 dataCallback
回调接收;
一定记得 添加了 notification
就必须要移除。
import { QSendNotification } from 'qunar-react-native';
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);
}
})