- 当移动应用程序关闭时收到通知时,如何导航到移动应用程序中的特定视图/屏幕
- 平台 react native v0.61.5 通知包=>
react native firebase v6.2.0react本机推送通知v3.1.9
react navigation v4.0.10
您可以使用react navigation中的NavigationActions。
App.js
<AppContainer
ref={navigatorRef => {
NavigationService.setTopLevelNavigator(navigatorRef);}}/>
NavigationService.js
import { NavigationActions, StackActions } from 'react-navigation';
let _navigator;
function setTopLevelNavigator(navigatorRef) {
_navigator = navigatorRef;
}
function navigate(routeName, params) {
_navigator.dispatch(
NavigationActions.navigate({
routeName,
params,
})
);
}
export default {
navigate,
setTopLevelNavigator
}
现在,在firebase的onNotificationOpened函数中,您必须写一行。
NavigationService.navigate('your screen', { param:paramValue })
//您可以用这种格式的通知发送数据
{"至":"FCM_ token";,"collapse_key":"type_a";,"通知":{"身体":"测试";,"标题":"测试标题";
},"数据":{"name":"xyz";}}
//现在您可以在侦听器中获取数据
const notificationOpen=等待firebase.notifications((.getInitialNotification((;
if(notificationOpen({
let {name} = notificationOpen.notification._data;
console.log("Notification data - ", name);
setInitialRoute(name);
}
//现在声明状态变量并更改导航器的initialRoute
const[initialRoute,setInitialRoute]=使用状态('ABC'(;
setInitialRoute(name(;//在通知侦听器中
//现在在导航容器中使用
<Stack.Navigator initialRouteName={initialRoute}>
</Stack.Navigator>