微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Flutter firebase 消息:iOS 手机未捕获消息

如何解决Flutter firebase 消息:iOS 手机未捕获消息

我正在尝试在我的应用程序上使用 Flutter firebase 消息传递。我在 pubspec.yaml 文件中安装了这些库:

dependencies:
    ...
    firebase_core: ^0.5.1
    firebase_messaging: ^8.0.0-dev.9

在 android 中我没有任何问题但在 Ios 中,即使我的应用程序处于前台,我也没有收到任何消息。事实上,FirebaseMessaging.onMessageFirebaseMessaging.onBackgroundMessage 根本没有触发。

Future initialise() async {
    //Firebase.initializeApp() I initialized on main method first
    FirebaseMessaging _fcm = FirebaseMessaging.instance;

    _fcm.requestPermission(alert: true,badge: true,sound: true);
    if (Platform.isAndroid) {
      _token = await _fcm.getToken();
      print("------> token is: $_token");
      } else if (Platform.isIOS) {
        _token = await _fcm.getAPNSToken(); // token received from firebase
        print("------> token is: $_token");

    }

    FirebaseMessaging.onMessage.listen((remoteMessage) async {
      print('[onMessage] message: ${remoteMessage.data}');
      var msg = PushMsgModel().wrapOriginMessage(remoteMessage);
      _showOverlyNotify(msg);
    });

    FirebaseMessaging.onBackgroundMessage(onBackgroundMessage);
  }
  • 对于IOS配置,我添加

    <key>FirebaseAppDelegateProxyEnabled</key>
    <false/>
    

    Info.plist

  • 我创建了 APNs 证书并添加到 ios firebase 项目设置中

  • 注册一个应用标识符

  • 生成一个配置文件,并在 xcode 中添加Provisioning Profile

  • 在 Xcode 中,我在项目导航器中选择了 Runner。在

  • 功能选项卡我打开了推送通知后台模式, 并在后台模式下启用后台获取和远程通知

  • 我也复制了 GoogleService-Info.plist 文件,在 ios/Runner.xcworkspace 与 Xcode。

enter image description here

AppDelegate.swift 包括

import UIKit
import Flutter

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    if #available(iOS 10.0,*) {
      UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
    }
    
    GeneratedpluginRegistrant.register(with: self)
    return super.application(application,didFinishLaunchingWithOptions: launchOptions)
  }
}

但是当我从 firebase 控制台推送消息时,我无法在 android studio 控制台上收到任何消息? 我的错误是什么?有人可以帮我吗?

什么时候应用程序可以获取令牌意味着我的配置是正确的?

我正在使用软件版本 14.4

iPhone7plus(移动) 上进行测试

解决方法

更新 iOS 前台通知呈现选项以允许在您的 runApp() 之前进行提醒通知。

await FirebaseMessaging.instance.setForegroundNotificationPresentationOptions(
    alert: false,badge: false,sound: false,);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。