FCM在iOS上使用颤振的要求是什么?

FCM在iOS上使用颤振的要求是什么?,ios,firebase,firebase-cloud-messaging,flutter,Ios,Firebase,Firebase Cloud Messaging,Flutter,我正在努力让Firebase云消息通过Flatter与iOS协同工作。我已经按照规定的步骤走了,而且运气不好 我没有使用模拟器,我使用的是带iOS 11.4.1的iPhone8+。我已经在Firebase控制台中安装了所有三个APN证书。我调用了FirebaseMessaging.requestNotificationPermissions()并接受该对话框。我正在通过FCM控制台发送消息进行测试。我用Firebase(匿名身份验证)验证了我的手机 我不会在应用打开或关闭时收到消息 如果有人对我

我正在努力让Firebase云消息通过Flatter与iOS协同工作。我已经按照规定的步骤走了,而且运气不好

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

我不会在应用打开或关闭时收到消息


如果有人对我可能遗漏的内容有任何想法,请协助。我希望能够制作一个bulletpoint列表,让其他来到Flatter/iOS/FCM的人能够无误地跟随。

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

但是,对于您给我们的描述,可能是关于以下选项之一的问题:

  • 您需要配置正确的环境以发送推送通知。如果您直接从Xcode将应用程序安装到设备上,则需要使用
    沙盒
    环境,但如果您的应用程序是从AppStore或Testflight安装的,则需要使用
    生产
    。这是因为环境(沙盒和生产环境)都引用不同的URL来发送推送通知
  • 未存储与应用程序和当前设备之间的特定关系相关的
    设备ID
    。请记住,当您发送推送通知时,您需要给出哪些设备将接收该通知
请让我知道这是否回答了您的问题,或者我遗漏了一些问题

编辑 要处理前台通知,您需要添加
didReceiveMemotentification
回调,以获取JSON结构的
标题
消息
所有自定义参数

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

  • 如果应用程序位于前台,则需要使用
    onMessage
    callback
  • 如果应用程序在后台,则需要使用
    onResume
    callback
  • 如果应用程序被终止,您需要使用
    onLaunch
    callback

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

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

但是,对于您给我们的描述,可能是关于以下选项之一的问题:

  • 您需要配置正确的环境以发送推送通知。如果您直接从Xcode将应用程序安装到设备,则需要使用
    沙盒
    环境,但如果您的应用程序是从AppStore或Testflight安装的,则需要使用
    生产版
    。这是因为环境(沙盒和生产版)指用于发送推送通知的不同URL
  • 未存储与应用程序和当前设备之间的特定关系相关的
    deviceId
    。请记住,在发送推送通知时,您需要给出哪些设备将接收该通知
请让我知道这是否回答了您的问题,或者我遗漏了一些问题

编辑 要处理前台通知,您需要添加
didReceiveMemotentification
回调,以获取JSON结构的
标题
消息
所有自定义参数

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

  • 如果应用程序位于前台,则需要使用
    onMessage
    callback
  • 如果应用程序在后台,则需要使用
    onResume
    callback
  • 如果应用程序被终止,您需要使用
    onLaunch
    callback

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

好吧,这就是我学到的。我希望在我开始工作的时候把这些都写下来。但这应该对别人有帮助

  • 确保Firebase已设置并在您的Flatter项目中工作
  • 添加到
    publispec.yaml
  • flatter包获得
  • 创建/下载您的APNS密钥并将其上载到Firebase控制台
  • 在Apple Dev网站上创建/下载您的资源调配配置文件,然后双击安装
  • 使用下面片段的重要部分

  • 通过Firebase控制台向所有应用程序用户或您的
    messagingToken
    发送消息

  • 如果您有一台运行应用程序的物理设备,并且您按照以下步骤操作,您应该会收到后台通知。您不会在前台收到这些通知。如果有人知道如何在前台收到这些通知,请告诉我

    片段


    好的,这就是我学到的。希望我在开始工作的时候把这些都写下来。但是这对我来说应该是有帮助的
    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();