【发布时间】:2018-12-12 17:34:19
【问题描述】:
我需要处理推送通知,我正在使用onesignal。
目前我正在主屏幕中处理推送通知,我正在使用react-navigation。
componentDidMount() {
OneSignal.addEventListener('received', this.onReceived);
OneSignal.addEventListener('opened', this.onOpened);
}
componentWillUnmount() {
// OneSignal.removeEventListener('received');
// OneSignal.removeEventListener('opened');
}
onReceived(notification) {
console.log('Notification received: ', notification);
}
onOpened = (data) => {
const { notification: { payload } } = data;
if (payload.additionalData) {
if (payload.additionalData.params) {
this.props.navigation.navigate({
routeName: payload.additionalData.route,
params: payload.additionalData.params,
key: payload.notificationID
});
}
}
}
使用此代码,我可以导航到通知数据包中指定的路线。
现在我面临的问题是,我有一个屏幕,我想刷新我的页面,例如调用该组件的getData();。
使用这种方法,我可以导航到该屏幕,如果我在该屏幕上收到通知。借助键,我可以导航到该屏幕。
假设我要去 OrderDetail 屏幕,当我收到通知时,它会导航到 Order Detail,
Home Screen --> Order Detail
现在如果我在OrderDetail 里面并且如果我收到通知,那就是
Home Screen ---> Order Detail ---> Order Detail
...等等'
在这种情况下如何处理推送通知?
【问题讨论】:
-
处理父组件的通知。像 App Root 或一些只处理通知的包装器。
-
那么我将如何导航到屏幕?如果我在屏幕上,则刷新数据
标签: javascript react-native react-navigation