Я только что просмотрел библиотеку и должен сказать, что она действительно плохо спроектирована.Вы должны перейти на реагировать-родной-пожарной базы .
Но если вы хотите остаться с ним:
Первое, что мы должны выяснить, это то, как мыможно получить уведомление, с помощью которого было открыто приложение?
Мы не можем использовать onNotification
из библиотеки, потому что мы не знаем, когда будет вызван обратный вызов.
Библиотекаимеет параметр popInitialNotification
, который будет выдавать первоначальное уведомление, с которым приложение было открыто.Если вы будете искать эту переменную в исходном коде библиотеки, вы найдете следующее :
if ( this.hasPoppedInitialNotification === false &&
( options.popInitialNotification === undefined || options.popInitialNotification === true ) ) {
this.popInitialNotification(function(firstNotification) {
if ( firstNotification !== null ) {
this._onNotification(firstNotification, true);
}
}.bind(this));
this.hasPoppedInitialNotification = true;
}
Как видите, она вызовет функцию с именем popInitialNotification(callback)
с функцией обратного вызова с начальным уведомлением.
Теперь вы можете использовать функцию для получения начального уведомления.
PushNotification.popInitialNotification(function(notification) {
});
Теперь у вас есть доступ к начальному уведомлениюнапрямую, без ожидания onNotification
.
С этого момента вы можете использовать SwitchNavigator из реагирующей навигации, как в следующем примере: https://reactnavigation.org/docs/en/auth-flow.html