Моя версия:
"@react-native-firebase/app": "^6.7.1",
"@react-native-firebase/messaging": "^6.7.1",
"react": "16.8.6",
"react-native": "0.60.5",
Я использую redux для управления значением и перехода на другой экран.
Вот код моей домашней страницы под функцией рендеринга:
if (notificationOpen) {
if (notificationTag === 'Mail') {
navigation.navigate('MailScreen');
} else if (notificationTag === 'Bill') {
navigation.navigate('BillboardScreen');
}
defaultNotificationOpen(); // set notificationOpen to false
}
Я запускаю уведомление при закрытии приложения по этому коду:
messaging()
.getInitialNotification()
.then(remoteMessage => {
console.log('remoteMessage is', remoteMessage);
if (remoteMessage) {
console.log(
'Notification caused app to open from quit state:',
remoteMessage.notification,
);
const notificationTag = remoteMessage.notification?.title;
console.log('notificationTag:', notificationTag);
dispatch({ type: NOTIFICATION_TAG, notificationTag });
dispatch({ type: NOTIFICATION_OPEN, notificationOpen: true} );
}
});
Это мой единственный способ получить уведомление при закрытии приложения.
Но моя проблема в том, если я просто перезагрузите мое приложение (без уведомления), getInitialNotification()
все еще работает, и notificationOpen
снова будет истинным.
Как избежать проблемы?