【问题标题】:GCM(Google Cloud Messaging ) in iOS( notification and data payload.)iOS 中的 GCM(Google Cloud Messaging)(通知和数据负载。)
【发布时间】:2016-08-27 09:08:38
【问题描述】:

我有一个问题。对于 iOS,我们可以在有效负载中同时发送“数据”和“通知”吗?当只向 GCM 发送“通知”时,我收到了通知。当我同时添加两者时,我没有收到任何通知。我的问题是,如果我想在 iOS 和 android 设备上获得更新,那么有效负载应该是什么?

当前有效载荷:

    {
    "to":"/topics/testTopic",
    "content_available":true,
    "priority":"high",
    "notification": {
                    "body":"Test Message",
                   "title":"test"
                    }, 
    "data": { 
                   "title": "Title.D Mixed JSON", 
                    "body": "Content.D Mixed JSON", 
              "productId" : "1" 
            } 
    }

【问题讨论】:

    标签: ios objective-c google-cloud-messaging apple-push-notifications


    【解决方案1】:

    您的有效载荷很好,没有理由不应该得到它。但这两者之间存在一些差异。 "notification""data" 之间的区别记录在官方文档中:https://developers.google.com/cloud-messaging/concept-options

    当您希望 GCM 代表您的客户端应用处理显示通知时,请使用通知。当您希望您的应用在 Android 客户端应用上处理显示或处理消息时,或者如果您希望在存在直接 GCM 连接时向 iOS 设备发送消息,请使用数据消息

    因此,对于您想要发送的混合消息,了解您的应用是在后台还是在前台非常重要:

    在后台时,应用会在通知托盘中接收通知负载,并且仅在用户点击通知时处理数据负载。 在前台时,您的应用会收到一个包含两个有效负载的捆绑包。

    没有收到推送通知的另一个原因是您没有分配交付优先级。有两个选项normalhigh

    高优先级。 GCM 尝试立即传递高优先级消息,允许 GCM 服务在可能的情况下唤醒睡眠设备并打开与您的应用服务器的网络连接

    正常

    普通优先级。这是消息传递的默认优先级。正常优先级消息不会在睡眠设备上打开网络连接,并且它们的传递可能会延迟以节省电池

    尝试在您的有效负载中将"priority" : "high" 设置在"notification" 之前。

    【讨论】:

    • 之前只是一个示例有效负载。我已经用我正在使用的实际有效负载编辑了问题。检查它。
    • 为什么你的“数据”在“通知”里面? “通知”具有此处描述的参数developers.google.com/cloud-messaging/http-server-ref,而“数据”不是其中之一。您必须使用“通知”之外的“数据”来访问它。
    • 数据在通知之外。查看payload语法没有数据json字符串可以正常工作。但是当它是单独的数据或数据和通知时,它将不起作用。
    • 请尝试将“数据”负载中的键名更改为一些自定义字符串键,尽量不要使用已定义的键作为参数。
    【解决方案2】:

    不允许重复“通知”和“数据”的内容,当用户点击通知时,您可以读取“通知”内的数据,以下JSON应该可以与您一起使用。

     {
       "to":"/topics/testTopic",
       "content_available":true,
       "priority":"high",
       "notification": {
                 "body":"Test Message",
                 "title":"test"
               }, 
       "data": { 
                 "productId" : "1" 
               } 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-06
      相关资源
      最近更新 更多