当前位置: 首页 > 知识库问答 >
问题:

通过FCM消息控制台在后台向我的iOS应用程序发送静默通知

司马渝
2023-03-14
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler


但问题是,在用户点击通知之前,它不会进入此方法。

根据(FCM文档),如果我们想要在后台唤醒应用程序,那么我们必须传递键值为true的content_available参数。但是当我在自定义数据中通过您的FCM Compose message console发送这些信息时,我们的应用程序不会在后台唤醒或激活,直到用户点击通知。我想我收到的通知都是正常的通知,而不是无声的通知。所以FCM的实现和发送通知看起来是完美的。

我遵循了所有给出的FCM文档,并参考了几乎所有可能的连接stackoverflow解决方案。就连我也跟着苹果的文档发远程通知。最后,我将通过FCM消息控制台发送“content_available”:true。但它不是静默通知,我接收的通知是用户必须点击的普通通知,以便输入DidReceiverEmoteNotification方法。

我在这里、这里、&这里引用了很多类似的链接

是否可以通过FCM接收背景中的通知(如静默通知)?或任何其他实现方式?

共有1个答案

梁明辉
2023-03-14

我已经找到解决办法了。只要按照这个链接和它的答案就可以了。

并在postman中输入如下所示的json主体

{
    "to":"eEBrg.... .... .... .... (FCM Token)",
    "priority": "normal",
    "content_available": true,
    "notification":{
 (do not send body here if you want to send the silent notification)
      "requesttype":"ring" // optional
    }   
}

...你的应用程序将在后台唤醒并进入didReceiveRemoteNotification方法。

 类似资料:
  • 我想为一个聊天应用程序实现FCM推送通知服务,我遵循Firebase文档中的步骤,当通知从Firebase控制台发送到我的设备时,我会得到通知。当我尝试使用http post to https://FCM.googleapis.com/FCM/send通过FCM将通知通过服务器端发送到设备时: 当应用程序处于活动状态并且我正在将此通知发送到我的设备时,Im在我的控制台日志中收到以下消息,所以我认为

  • 但当应用程序在后台,我得到通知在系统托盘。当我点击控件时,它会转到主活动。而当我解析时,我只得到这个关键数据-、、、。 如何从获取通知消息标题和系统托盘中可见的消息? 我正在使用FCM控制台发送通知,我没有我的专用服务器这样做。

  • 使用更新的Firebase cloud messaging和swizzling方法,当我的应用程序前景化时,我能够成功地在我的应用程序委托中的方法中接收有效负载。但是,我没有收到任何类型的有效负载,并且当我的应用程序处于后台时,不会被调用,尽管api响应消息已成功发送(见下文) 以下是我发送给FCM api的请求,以触发推送通知 有FCM的回复 这是我的appDelegate代码 我在我的应用程序

  • 问题内容: 我在iOS上的FCM通知有问题。 我收到成功通知时,我的应用程序是在前台(回调中被激发),但是当应用程序在后台(我看不出在iOS中的通知栏的任何东西)我没有收到通知。 因此,我认为问题在于FCM发送的消息格式。我的服务器发送到FCM的json格式如下: 如您所见,我的json中有两个块:一个通知块(用于在后台接收通知)和一个数据块(用于在前台接收通知)。 我不明白为什么没有收到后台通知

  • 您可以看到,我的JSON中有两个块:一个通知块(在后台接收通知),一个数据块(在前台接收通知)。 我不明白为什么没有收到后台通知。我的怀疑是关于块的顺序(如果我把“数据”块放在“通知”块之前会有问题吗?)。 编辑:有关问题的更多信息。 编辑2: 当应用程序在后台时,不会收到通知,但当我打开应用程序时,会立即收到相同的通知(方法didReceiveRemoteNotification被激发)。

  • 当应用程序关闭时,我无法使通知工作。 我从FCM/GCM(python服务器)发送此消息: 所以curl是这样的: curl-头"授权:key=MYKEY"-头"内容类型:应用/json"https://fcm.googleapis.com/fcm/send-d'{"registration_ids":["APA91bEDB9dVf-..."],"collapse_key":空,"content_