【问题标题】:What are the requirements for FCM to work with Flutter on iOS?FCM 在 iOS 上使用 Flutter 有什么要求?
【发布时间】:2018-12-30 05:25:21
【问题描述】:

我正在努力让 Firebase Cloud Messaging 通过 Flutter 与 iOS 一起工作。我已经按照hereherehere 列出的步骤进行操作,但没有运气。

我没有使用模拟器,我使用的是带有 iOS 11.4.1 的 iPhone 8+。我已经在 Firebase 控制台中安装了所有三个 APN 证书。我已经打电话给FirebaseMessaging.requestNotificationPermissions(); 并接受了对话。我正在通过 FCM 控制台发送消息进行测试。我的手机通过 Firebase 进行了身份验证(匿名身份验证)。

我没有在应用打开或关闭时收到消息。

如果有人对我可能遗漏的内容有任何想法,请提供帮助。我希望能够为其他来到 Flutter/iOS/FCM 的人制作一个项目符号列表,以便他们无误地跟随。

【问题讨论】:

    标签: ios firebase firebase-cloud-messaging flutter


    【解决方案1】:

    好的,这就是我学到的。希望当我开始工作时我已经把这一切都写下来了。但它应该对某人有帮助。

    1. 确保 Firebase 已设置并在您的 Flutter 项目中运行。
    2. firebase_messaging 添加到pubspec.yaml
    3. flutter packages get
    4. 创建/下载您的 APNS 密钥并将其上传到 Firebase 控制台
    5. 在 Apple Dev 网站上创建/下载您的 Provisioning Profile,然后双击安装。
    6. 使用下面sn-p的重要部分

    7. 通过 Firebase 控制台向所有应用用户或您的 messagingToken 发送消息。

    如果您有运行应用的物理设备并按照这些步骤操作,您应该会收到后台通知。您不会在前台收到它们。如果有人知道如何将它们放在前台,请告诉我!

    sn-p

    import 'package:firebase_messaging/firebase_messaging.dart';
    
    FirebaseMessaging messaging = FirebaseMessaging();
    
    messaging.configure(); // NECESSARY
    messagingToken = await fb.messaging.getToken();
    messaging.subscribeToTopic("general");
    
    // this will launch a modal asking if you want to receive notifications
    messaging.requestNotificationPermissions();
    

    【讨论】:

      【解决方案2】:

      听起来您缺少一些配置步骤,以便能够向您的 iOS 应用发送推送通知。也许您能做的最好的事情就是发布有关您的配置环境的更多信息。

      但是,对于您提供给我们的描述,它可能与以下选项之一有关:

      • 您需要配置正确的环境来发送推送通知。如果您直接从 Xcode 将应用程序安装到设备上,则需要使用 Sandbox 环境,但如果您的应用程序是从 AppStore 或 Testflight 安装的,则需要使用 Production。这是因为环境(沙盒和生产环境)都引用了不同的 url 来发送推送通知。
      • 与您的应用程序与当前设备之间的特定关系相关的deviceId 未存储。请记住,当您发送推送通知时,您需要指定哪些设备会收到该通知。

      如果这回答了您的问题或者我遗漏了一些问题,请告诉我

      编辑

      要处理前台通知,您需要添加didReceiveRemoteNotification 回调,以获取titlemessage JSON 结构的所有自定义参数。

      在这种特殊情况下,插件文档说您需要三个不同的回调,具体取决于应用程序状态。

      • 如果应用在 FOREGROUND 中,您需要使用 onMessage 回调
      • 如果应用在后台,您需要使用onResume 回调
      • 如果应用已终止,您需要使用onLaunch 回调

      但是,这仅使参数信息可用,您仍然需要以某种自定义方式向用户显示它们(例如,如果您作为独立的人在不同的对话中,WhatsApp 或 Facebook Messenger 可以向您显示新的聊天消息视图顶部的气泡,或者如果此新消息属于当前聊天,则将其添加到对话的底部)。

      【讨论】:

      • 嘿,对不起!我昨天去寻找这个帖子来更新它,但由于某种原因找不到它。我会添加更多信息。
      猜你喜欢
      • 1970-01-01
      • 2020-02-11
      • 2021-11-28
      • 2021-09-18
      • 2021-07-31
      • 2021-08-25
      • 2018-11-30
      • 2015-10-22
      • 2021-07-24
      相关资源
      最近更新 更多