首页 > 解决方案 > react-native 在 fcm 通知点击上打开特定屏幕

问题描述

我搜索了堆栈溢出,没有找到任何东西。

这就是如何处理我的点击

export const App = () => {
  messaging().setBackgroundMessageHandler(async remoteMessage => {
    const {data} = remoteMessage;
    if (data.action == 'open_map') {
      navigate('RouteMap', {data: data.eventsteamID});
    }
    if (data.action == 'open_home') {
      navigate('MainNavigator');
    }
    console.log('Message handled in the background!', remoteMessage);
  });
  return (
    <PaperProvider>
      <LocationProvider>
        <AuthProvider>
          <RootNavigator />
        </AuthProvider>
      </LocationProvider>
    </PaperProvider>
  );
};

我创建了此服务,因为在附加 RootNavigator 之前导航不可用

import * as React from 'react';

export const isMountedRef = React.createRef();

export const navigationRef = React.createRef();

export function navigate(name, params) {
  if (isMountedRef.current && navigationRef.current) {
    navigationRef.current.navigate(name, params);
  } else {
    console.log('Navigation Failed!');
  }
}

任何人都有解决方案。

这是我的 fcm 回复

这是我的 fcm 回复

编辑:=> 相同的代码在 android 上工作

标签: react-nativefirebase-cloud-messaging

解决方案


推荐阅读