【问题标题】:Send silent notification to my iOS app in background, through FCM message console通过 FCM 消息控制台在后台向我的 iOS 应用程序发送静默通知
【发布时间】:2018-05-25 23:58:33
【问题描述】:

我想向我的 iOS 应用程序发送静默通知,为此我在其中实施了 FCM。当应用程序在后台时,当应用程序从 FCM 收到通知时,我需要执行一些操作。

为此,执行过程将进入被调用的方法

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler


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

根据 (FCM documents) ,如果我们想在后台唤醒我们的应用程序,那么我们必须传递 key 值为 true 的 content_available 参数。但是,当我通过您在custom data 中的 FCM Compose 消息控制台发送此信息时,我们的应用程序不会唤醒,也不会在后台激活,直到用户点击通知。我猜我收到的所有通知都是正常通知,而不是无声通知。所以 FCM 实现和发送通知似乎工作正常。

我遵循了所有给出的 FCM 文档,并参考了几乎所有可能的连接 stackoverflow 解决方案。即使我已经按照苹果文档发送远程通知。最后我通过 FCM 消息控制台发送“content_available”:true。但它并没有变成无声通知,我收到的通知是普通通知,用户必须点击该通知才能进入 didReceiveRemoteNotification 方法。

我参考了很多这样的链接 here, here, & here

是否甚至可以通过 FCM 在后台接收通知(如无声通知)? 或任何其他方式来实现它?

【问题讨论】:

  • content_available 是一个参数,它应该在您的有效负载中的 notificationdata 之外。将任何键值对放入自定义数据中,将其放入 data 消息负载中。
  • 好的,让我试试看。
  • 我已经联系了 firebase-support,他们说“在通知控制台中发送静默通知是不可能的。它的主要用途是发送将显示给用户的活动。如果您希望发送静默通知通知,您需要改用 FCM API。" .那么如何使用该 FCM API 呢?你知道怎么做吗?
  • 您可以尝试使用 Postman -- 请参阅我的回答 here
  • 我按照你说的做了,但我得到了这种格式 userInfo->{ alert = { body = "noti body"; title = "通知标题"; }; } ...我仍然没有收到通知,因为应用程序处于后台状态。

标签: ios objective-c firebase firebase-cloud-messaging firebase-console


【解决方案1】:

我已经找到了解决方案。 只需关注此link 及其答案即可。

在邮递员中像这样输入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 。

【讨论】:

  • 我现在已经检查过了,如果应用程序在后台它永远不会自动唤醒。只有当用户将应用程序置于前台时,所有通知才会开始出现在 didReceiveRemoteNotification 中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-09
  • 1970-01-01
  • 2017-08-24
  • 1970-01-01
相关资源
最近更新 更多