GCM 推送通知在 iOS 上不起作用

Posted

技术标签:

【中文标题】GCM 推送通知在 iOS 上不起作用【英文标题】:GCM Push Notification not working on iOS 【发布时间】:2016-02-12 05:40:44 【问题描述】:

我正在尝试将推送消息从服务器发送到我的 ios 设备。

当我发送以下 JSON 消息时,应用程序正在接收消息(仅在前台) -


  "to": "<my_reg_id>",
  "data": 
    
      "body": "Hello world",
      "title": "Title"
    

但是,当我以Setting up a GCM Client App on iOS(如下所示)给出的格式发送消息时,我在服务器响应中收到"error": "InternalServerError" -


  "to": "<my_reg_id>",
  "content_available": true,
  "priority": "high",
  "notification":
    
      "body": "Hello world",
      "title": "Title"
    

谁能告诉我该怎么办?我真的需要为我的应用接收后台通知。

(附注 - 我在 xCode 中为我的应用启用了远程通知和推送通知功能。)

【问题讨论】:

根据我的经验,在 json 内部,有效载荷的顶部键应该是“aps”。只需检查苹果文档... GCM Notifications not receiving when app is in background mode in iOS的可能重复 【参考方案1】:

“内部服务器错误”是服务器端问题。请重新启动服务器并重试。

你的json格式正确


  "content_available":true,
  "to":"gcm_registration_token",
  "priority":"high",
  "notification":
    
    "body":"anything",
    "title":"any title"
    

【讨论】:

没有服务器。我正在使用 Postman 向设备发送消息。这是使用“aps”的问题,也许是我用于 GCM 的证书的问题。【参考方案2】:

所以我在 JSON 有效负载中使用了“aps”字段,并在 Google Developers Console 上更新了我的证书.....瞧! 我现在在我的设备上接收推送通知。 :D 谢谢大家的帮助:)

【讨论】:

【参考方案3】:

从您的 json 中删除 true,@"content_available"。这对我有用。

【讨论】:

以上是关于GCM 推送通知在 iOS 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

推送通知在 iOS 5.0.1 上不起作用

为啥远程推送通知在 iOS 10 上不起作用?

在 iOS 上不使用 GCM 接收推送通知

推送通知声音在 iOS8 上不起作用

Ionic 5 电容器:使用 ONESIGNAL 的推送通知在 iOS 上不起作用

iOS Firebase 推送通知在 Xcode 11.5 和 iOS 13 的模拟器上不起作用