Мне нужно обработать push-уведомления, и я использую onesignal
для этого.В настоящее время я обрабатываю push-уведомления на своем домашнем экране и использую 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, и когда я получаю уведомление, он переходит к деталям заказа, Home Screen --> Order Detail
и теперь, если я нахожусь внутри OrderDetail
, и если я получу уведомление, это будет
Home Screen ---> Order Detail ---> Order Detail
... и т. Д. «Как я могу обрабатывать push-уведомления в этом случае?