React Native Onesignal: пакет перезапускается, когда приложение находится на переднем плане, ANDROID - PullRequest
1 голос
/ 03 октября 2019

Сегодня я столкнулся с неожиданной ошибкой, 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.
...