在后台模式下不调用 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 未在后台调用
ionic iOS FCM 在开发模式下工作,但在生产模式下不工作