FCM 推送通知在 iOS 设备的 Flutter 应用程序中不起作用

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

Flutter 应用在 IOS 设备上运行时,收不到 FCM 推送通知。一旦应用程序进入后台或最小化,推送通知就会正常工作。

我为此使用了 firebase_messaging 和 flutter_local_notifications 插件。

  initialize() async {
   FirebaseMessaging messaging = FirebaseMessaging.instance;
   SharedPreferences sharedPreferences = await 
   SharedPreferences.getInstance();
   NotificationSettings settings = await messaging.requestPermission(
    alert: true,
    announcement: false,
    badge: true,
    carPlay: false,
    criticalAlert: false,
    provisional: false,
    sound: true,
  );

  if (settings.authorizationStatus == AuthorizationStatus.authorized) {
    print('User granted permission');
  } else if (settings.authorizationStatus ==
    AuthorizationStatus.provisional) {
      print('User granted provisional permission');
  } else {
    print('User declined or has not accepted permission');
  }

  messaging.getToken().then((token) {
    print("FCM TOKEN:- $token");
    sharedPreferences.setString("fcmToken", token.toString());
  });

  FirebaseMessaging.onMessage.listen((RemoteMessage event) {
    print("message received");
    print(event.notification!.body);
    flutterLocalNotificationsPlugin.show(
      1,
      event.notification!.title.toString(),
      event.notification!.body.toString(),
      NotificationDetails(
        android: AndroidNotificationDetails(
          channel.id,
          channel.name,
          color: Colors.amber,
          playSound: true,
          icon: '@mipmap/ic_launcher',
        ),
      ));
  });
  FirebaseMessaging.onMessageOpenedApp.listen((message) {
    print('Message clicked!');
  });
}

有人可以帮我吗?

ios flutter push-notification firebase-cloud-messaging flutter-local-notification
1个回答
0
投票

当您在onMessage中监听通知时,您仅添加android规范。请同时添加 IOS 规范。

© www.soinside.com 2019 - 2024. All rights reserved.