无法接收 iOS 的 FCM 推送通知
Posted
技术标签:
【中文标题】无法接收 iOS 的 FCM 推送通知【英文标题】:Can't receive FCM Push Notifications for iOS 【发布时间】:2018-04-22 08:15:28 【问题描述】:我正在尝试使用 Firebase Cloud Messaging (FCM) SDK 向 ios 设备发送推送通知。我创建了一个非常简单的应用程序,它有一个空的 ViewController 和一个由 quick start iOS project 提供的 AppDelegate 复制的应用程序。
我遵循了guide中提供的所有说明:
使用 pod 安装 SDK,这是我的 podFile:
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
pod 'Firebase/Core'
pod 'Firebase/Messaging'
target 'fcmPushTest' do
# Comment the next line if you're not using Swift and don't want to use
dynamic frameworks
use_frameworks!
# Pods for fcmPushTest
end
在 Xcode 的“功能”选项卡中添加了推送通知
在苹果开发者门户上生成的 APNs 认证密钥和 APPID(APPID 由 Xcode 自动生成)
在 Firebase 开发者控制台中为我的应用创建了一个新项目,下载并复制项目根目录下的 GoogleService-Info.plist 文件
在 Firebase 开发者控制台中上传了 APNs 身份验证密钥
已安装应用并将其置于后台(应用在前台时不会出现通知)
当应用程序启动时,它会正确返回一个 FCM 令牌。然后我在 FCM 推送通知控制台中使用此令牌以发送消息但没有任何反应:即使控制台说消息已“完成”,也未收到通知
尝试使用 curl 发送通知
curl -X POST --header "Authorization: key=<API_ACCESS_KEY>" \
--Header "Content-Type: application/json" \
https://fcm.googleapis.com/fcm/send \
-d "\"to\":\"<YOUR_DEVICE_ID_TOKEN>\",\"notification\":\"body\":\"Yellow\",\"priority\":10"
我收到以下回复:
"multicast_id":7144776975498650143,"success":1,"failure":0,"canonical_ids":0,"results":["message_id":"0:1510221288971805%7fe9e2a37fe9e2a3"]
由于成功等于 1,我想一切正常,但我仍然没有收到任何通知。
我搜索了问题的可能原因,但似乎 Firebase 消息库最近已更改(pod 说我使用的是 FirebaseMessaging 2.0.3 版本)所以我找不到合适的解决方案。
【问题讨论】:
【参考方案1】:问题是我忘记在“功能”选项卡的“后台模式”中添加“远程通知”。现在一切正常。
【讨论】:
以上是关于无法接收 iOS 的 FCM 推送通知的主要内容,如果未能解决你的问题,请参考以下文章
iOS 无法通过 FCM 接收推送通知(可以通过 APNs)
如何在应用程序处于后台(ios)时使 FCM 通知正常工作?
如何在 ios 中单击通知时接收数据,当应用程序被杀死时,(react-native-fcm 模块在 IOS 中获取推送通知)