iOS的FCM富推送通知负载

20

我的项目中使用了 FCM。它拥有一种丰富的推送通知类型。我试图修改了大部分可能的方式来从 FCM获取推送通知。但我只得到了普通的推送通知,没有图片。

我还使用了同样的编码与Push Try的APNS进行了测试。我得到了预期设计的推送通知。

这是我的 APNS 负载内容。

{
  "aps": {
     "alert": "Enter your message",
     "badge": 1,
     "sound": "default",
     "content-available": 1,
     "mutable-content": 1
  },
  "mediaUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2a/FloorGoban.JPG/1024px-FloorGoban.JPG"
}

这里是FCM负载

{
   "to": "dWB537Nz1GA:APA91bHIjJ5....",
   "data":
   {
      "message": "Offer!",
      "mediaUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2a/FloorGoban.JPG/1024px-FloorGoban.JPG"
   },
   "notification":
   {
      "body": "Enter your message",
      "sound": "default",
      "content-available": 1,
      "mutable-content": 1
   }
}

还需要分类,更多关于 FCM 负载的详细信息

我是否错过了火力台控制台中的任何设置或者这是来自负载。

2个回答

46

您的 FCM 负载中的 mutable-contentcontent-available 是不正确的。应该格式为 mutable_contentcontent_available。它们都是 布尔值,并且还必须在 notification 参数之外。如下所示:

{
   "to": "dWB537Nz1GA:APA91bHIjJ5....",
   "content_available": true,
   "mutable_content": true,
   "data":
   {
      "message": "Offer!",
      "mediaUrl": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/2a/FloorGoban.JPG/1024px-FloorGoban.JPG"
   },
   "notification":
   {
      "body": "Enter your message",
      "sound": "default"
   }
}

在FCM中,category的对应项是click_action

与用户在通知上点击相关联的操作。

对应于APNs负载中的category


@AL. 这是正确的 FCM 负载吗?我的意思是为什么消息和正文要分开呢?它们不能都在通知中或者都在数据中吗?将通知的标题和消息放在单独的 { } 中感觉不太对。 - user7219266
我们可以在有效载荷中传递字典吗? "to" : “设备令牌”, "content_available": true, "notification" : {}, "data": { "payload" : { "dataa": { "btn_action": “一些文本“, "lock_mac" : "0一些文本", "device_type" : "iOS", “某个键” : "一些文本" } } } - Developer
@开发者,“data”消息有效载荷适用于自定义数据。所以是的,请确保您正确处理它。干杯! - AL.
AL. func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)在上述函数中,userInfo["payload"] as? [String:Any] 始终为nil。 - Developer
@开发者 我建议您发布一个带有相应代码和详细信息的问题,这样社区可以更好地帮助您。 :) - AL.
显示剩余3条评论

8
这对我有用。接受的回答似乎包含了一些不必要的信息。
{
  "to" : "devicekey OR /topics/sometopic",
  "mutable_content": true,
  "data": {
    "mymediavideo": "https://myserver.com/myvideo.mp4"
  },
  "notification": {
    "title": "my title",
    "subtitle": "my subtitle",
    "body": "some body"
  }
}

1
请请求被采纳答案的作者使用这些信息来完善他的回答。 - ricardopereira
1
请查看此评论。 - Mathi Arasan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接