操作无法完成。在获取 FCM 令牌之前未指定 APNS 令牌 - IOS React Native

问题描述 投票:0回答:1

我正在尝试使用 Firebase/消息传递在 React Native 中设置推送通知。当我尝试获取 FCM 令牌时,它仅针对 IOS 抛出此错误。

有时,当我点击并尝试不同的解决方案时它开始工作,但第二天它会再次发送相同的错误。

我已遵循此链接中的所有解决方案。

这是我的代码:

const getFCMToken = async () => {
  try {
    const fcmToken = await messaging().getToken();
    console.log(fcmToken);
  } catch (err) {
    console.error(err);
  }
};

export const requestPermissionAndFCMToken = async () => {
  if (Platform.OS === "ios") {
    const authStatus = await messaging().requestPermission();
    const enabled =
      authStatus === messaging.AuthorizationStatus.AUTHORIZED ||
      authStatus === messaging.AuthorizationStatus.PROVISIONAL;

    if (enabled) {
      getFCMToken();
    }
  } else {
    const authStatus = await PermissionsAndroid.request(
      PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS,
    );
    if (authStatus === "granted") {
      getFCMToken();
    }
  }
};
ios firebase react-native push-notification firebase-cloud-messaging
1个回答
0
投票

我花了 3 天来修复它,它对我来说绝对工作得很好。

  1. 您需要向 ios/AppDelegate.mm 添加更多代码,如下所示:

       - (BOOL)application:(UIApplication *)application 
             didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
       {
         ...
         [FIRApp configure];
         [application registerForRemoteNotifications]; // <--- Add this Line
         ...
       }
    
  2. 您还需要向 ios/AppDelegate.mm 添加另一个函数:

    - (void)application:(UIApplication *)application
     didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
     [FIRMessaging messaging].APNSToken = deviceToken;
    }
    
© www.soinside.com 2019 - 2024. All rights reserved.