cordova、Firebase、FCM 插件 - 在 iOS 的通知栏中不显示通知
Posted
技术标签:
【中文标题】cordova、Firebase、FCM 插件 - 在 iOS 的通知栏中不显示通知【英文标题】:cordova, Firebase, FCM Plugin - Not showing notifications in notification bar on iOS 【发布时间】:2016-12-23 14:11:59 【问题描述】:我正在将此插件与 cordova 一起使用:cordova-plugin-fcm 来获取通知。
它在 android 上运行良好。
问题在于 ios,当应用程序处于前台时,通知会到达。但是当应用程序关闭或在后台时,通知不会显示在通知栏中,但是当我打开应用程序时,我可以看到通知到达并且我生成的弹出窗口被打开。
但我确实需要通知才能在锁定屏幕和通知栏中显示。
这是我要发送到 Firebase API 的内容:
/ POST to https://fcm.googleapis.com/fcm/send
我在正文中发送这个:
"to" : <USER_TOKEN>,
"alert":"Test",
"notification":
"alert":"Test test",
"title": "Notification test",
"text": "Testing notification text"
,
"priority": 10,
"content_available": true
我也尝试过使用"priority": "high"
并得到相同的结果。
通知到达,但仅在我打开应用程序时显示。我什至没有在通知栏或锁定屏幕中看到它。
我还尝试在正文中添加"aps"
属性,其中包含所有信息.. 不起作用。
我希望有人可以对此有所了解..
PS:iOS v10.1.1
PS2:适用于所有安卓设备。
我已经阅读了社区的一些答案,但似乎不起作用:
Firebase API is not sending push notifications when using the API
iOS not receiving Firebase Push Notification sent through the API
感谢您的宝贵时间。
【问题讨论】:
嗨@Ariel。我正在尝试使用 Intel XDK 使这个插件工作并发布这个问题:***.com/questions/42199487/…。你能帮我解决这个问题吗?我只是想知道我做错了什么。 @Ariel 我面临同样的问题,iOS 中的通知未显示在通知栏中。请帮我。我被困在这个任务中。 @EktaPadaliya 我在 XCode 配置、检查功能、启用推送通知以及配置正确证书时遇到问题。我的问题在那里,在功能配置部分,我没有启用推送通知。一旦我启用它们,它们就会开始出现。 【参考方案1】:您有没有在 console.firebase.google.com 上上传您的开发 APNs 证书,
将您的 APNs 证书上传到 Firebase。如果您还没有 APNs 证书,请参阅配置 APNs SSL 证书。
在 Firebase 控制台的项目中,选择齿轮图标,选择项目设置,然后选择云消息传递选项卡。 为您的开发证书、生产证书或两者选择上传证书按钮。至少需要一个。 对于每个证书,选择 .p12 文件,并提供密码(如果有)。确保此证书的捆绑包 ID 与您的应用的捆绑包 ID 匹配。选择保存。
你可以参考链接https://firebase.google.com/docs/cloud-messaging/ios/client
【讨论】:
我正在使用 cordova-plugin-firebase 0.1.18 “Google Firebase 插件适用于 ios 和 android 感谢您的回答,抱歉耽搁了,其他一些项目优先。我上传了 .p12 证书(开发和专业版),仍然没有改进的迹象。如果应用程序在前台,我会收到通知,但是当 iPhone 被阻止时,我在屏幕或通知栏中什么都看不到。 好的,解决了,怎么样?上传 .p12 和 .. 不要笑:XCode -> Capabiltiies -> 推送通知(启用)。【参考方案2】:我遇到了同样的问题, 首先,你需要使用“body”而不是“text”; 对于优先级,您应该始终使用“高”或“正常”,对于推送通知,默认值应该是高。 如果您忘记在 Json 字符串的通知对象中使用“标题”和“正文”键,iOS 显然不会将通知添加到通知列表中。
如果您想要一些自定义值,则添加一个具有自定义值的数据对象。像这样:
"data":
"data1":"value1",
"data2":"value2"
所以试试这样的:
"to" : <USER_TOKEN>, //or /topics/<topicname> or /topics/all"
"notification":
"title": "Notification test",
"body": "Testing notification text"
,
"priority": high,
"sound":"default", //not using this one wont make your iOS device use sound
"click_action":"FCM_PLUGIN_ACTIVITY",
"icon":"fcm_push_icon"
结合数据对象:
"to" : <USER_TOKEN>, //or /topics/<topicname> or /topics/all"
"notification":
"title": "Notification test",
"body": "Testing notification text"
,
"data":
"data1":"value1",
"data2":"value2"
,
"priority": high,
"sound":"default", //not using this one wont make your iOS device use sound
"click_action":"FCM_PLUGIN_ACTIVITY",
"icon":"fcm_push_icon"
希望对我有帮助
【讨论】:
还要确保您的开发 APNs 证书已上传,但这应该可以正常工作,假设它已经在应用程序中工作。 谢谢@basco05,已经解决了这个问题,我忘记在“功能”中的设置中启用推送通知,这解决了我遇到的问题。以上是关于cordova、Firebase、FCM 插件 - 在 iOS 的通知栏中不显示通知的主要内容,如果未能解决你的问题,请参考以下文章
Cordova Android 应用程序不接收来自服务器端的 FCM 通知
Firebase 推送通知与 PhoneGap Build 使用 cordova-plugin-fcm