在后台模式下不调用 FCM 通知方法

Posted

技术标签:

【中文标题】在后台模式下不调用 FCM 通知方法【英文标题】:FCM Notification Method is not called in background mode 【发布时间】:2017-08-22 11:21:35 【问题描述】:

我为使用 FCM 的推送通知制作了一个示例演示。 我能够在后台模式和前台模式下收到通知。 但我的问题是:- 当我的应用程序处于后台模式时,收到通知但没有调用任何单个方法,因此我可以执行操作。

我同意当我点击该方法时,它会调用一个方法,但不会在后台调用。

方法是我用过的

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



- (void)userNotificationCenter:(UNUserNotificationCenter *)center  willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler



请帮帮我,我被卡住了。我需要它 提前致谢。 我已经阅读了很多链接,但无法解决我的问题。

注意:- 请记住,我使用了 Google 云消息传递:- FCM

我在Objective c中使用过

【问题讨论】:

你的通知负载是什么? 你添加了 "content-available" : 1 吗? @M Zubair Shamshad:对不起,我是 FCM 的新手,在哪里放置内容可用":1,它放在后端吗? Pay Load 采用这种格式 "aps" : "alert" : "You got your emails.", "badge" : 9, "sound" : "bingbong.aiff" , " acme1" : "bar", "acme2" : 42 您的要求是在用户交互之前调用通知代表接收推送(用户点击通知横幅)???是吗? 【参考方案1】:

根据我们在 cmets 中根据您的问题进行的讨论。为了满足您的要求,还有一些事情要做。我发布这些观点是因为您不熟悉 content-available 的东西。

打开您的 Xcode 项目并

1:在项目导航器中,选择您的项目。

2:在编辑器中,选择您的 ios 应用目标。

3:选择功能选项卡。

4:在功能下启用推送通知。

5:启用后台模式功能。

6:启用远程通知后台模式。

现在,如果您的通知负载包含 content-available : 1,那么您的应用将在后台被唤醒。

系统通过调用您的应用委托的application:didReceiveRemoteNotification:fetchCompletionHandler: 方法来传递通知。使用该方法启动所需的操作。

【讨论】:

你上面提到的任何事情我已经实现了,只是等待后端人员在他的负载代码中设置“内容可用:1”。谢谢

以上是关于在后台模式下不调用 FCM 通知方法的主要内容,如果未能解决你的问题,请参考以下文章

Android FCM - onMessageReceived 未在后台调用

Flutter FCM Ios 未在设备上显示

ionic iOS FCM 在开发模式下工作,但在生产模式下不工作

如何在后台控制 FCM 消息通知 [重复]

[Firebase 消息传递]:应用程序在后台时不调用后台消息处理程序方法?

在运行和终止时处理 FCM 通知