Solución:
Para lograr el comportamiento deseado, puede hacer un par de cosas. Puede verificar manualmente la notificación y el estado del enrutador y, si es necesario, redirigir al usuario a la pantalla o puede usar la funcionalidad Deep Linking.
Para usar Deep Linking, adjunta url
parámetro a su notificación al enviarla. Para dirigir al usuario a la pantalla correcta en su aplicación, puede utilizar la función de enlace profundo de navegación de reacción.
De la documentación de una señal
url
cadena La URL que se abre en el navegador cuando un usuario hace clic en la notificación. Ejemplo: http://www.google.comNota: iOS necesita https o NSAppTransportSecurity actualizado en plist
De la documentación de React Navigation
Vinculación profunda
En esta guía, configuraremos nuestra aplicación para manejar URI externos. Empecemos con el
SimpleApp
que creamos en la guía de introducción. En este ejemplo, queremos un URI como
mychat://chat/Taylor
para abrir nuestra aplicación y vincular directamente a la página de chat de Taylor.
Puede enviar un NavigationAction
o realizar un navigate
acción cuando onOpened
Está despedido. El siguiente fragmento debería funcionar:
componentWillMount() {
OneSignal.inFocusDisplaying(0);
OneSignal.removeEventListener('opened', this.onOpened.bind(this));
OneSignal.addEventListener('opened', this.onOpened.bind(this));
}
onOpened(openResult) {
let data = openResult.notification.payload.additionalData;
// ScreenName is the name of the screen you defined in StackNavigator
this.props.navigation.navigate('ScreenName', data)
}