Сегодня я столкнулся с неожиданной ошибкой, react-native 59.8
only android issue
Я использую onesignal, и все работает нормально (за исключением случаев, когда мое приложение находится на переднем плане).
Я инициализировалмои onesignal
в app.js
OneSignal.init(ONE_SIGNAL_DRIVER);
и мои слушатели находятся на моей домашней странице.
useEffect(() => {
OneSignal.addEventListener('received', onReceived);
OneSignal.addEventListener('opened', onOpened);
return () => {
OneSignal.removeEventListener('received', onReceived);
OneSignal.removeEventListener('opened', onOpened);
};
}, []);
Теперь, когда я получаю уведомление, если мое приложение закрыто (не вна переднем плане). Работает нормально. Сначала запускается моя связка, а потом все решается. и, наконец, эти события запускаются и вызывается мое открытое приложение (если я открываю свое приложение из уведомления).
Но проблема в том, что мое приложение находится в foreground
. Когда я нажимаю на плитку уведомлений, сразу же вызывается мой onOpened
, это ожидаемое поведение, так как мое приложение работает, и слушатели уже настроены.
Но что происходит, когда я нажимаю на уведомление,мой onOpened
вызывается, и после этого мой react native bundle
перезагружается и вызывает перезагрузку моего приложения, выполняя всю работу с самого начала (App.js)
,
Таким образом, проблема заключается в том, что я открываю уведомление, когда мое приложениенаходится на переднем плане или в открытом, реактивный пакет реакции перезапускается и перезапускает мое приложение. Таким образом, вещи, которые я хотел сделать в моем onOpened
, не разрешаются так, как это происходит до перезапуска. Теперь я хочу, чтобы каким-то образом не позволяло уведомлению о сигнале одного пользователя перезапустить мой пакет или как-то задерживать мое onOpened до перезапуска моего пакета.
Этот журнал также может помочь, это журнал, когда я нажимаю на уведомление, пока мойприложение находится на переднем плане, как вы можете видеть, что мой onOpened
вызывается, но затем мое приложение перезапускается, у меня также активирован oneignal, но я не думаю, что это вызывает какие-либо проблемы.
Это также происходит, когда ясделать релиз сборки.
clicked onOpened
Running application "Driver" with appParams: {"rootTag":1}. __DEV__ === true, development-level warning are ON, performance optimizations are OFF
logging.js:3 [CodePush] Checking for update.
logging.js:3 [CodePush] An update is available, but it is being ignored due to having been previously rolled back.
logging.js:3 [CodePush] App is up to date.