iOS学习交流iOS DeveloperiOS菜鸟联盟

iOS 集成友盟推送接受不到推送,推送成功后无声音提示和角标显示

2017-03-27  本文已影响2082人  走向菜鸟的菜鸟

最近项目中要集成友盟推送,之前没有做过友盟的推送,所以就研究了一下文档,集成步骤和其他的推送平台(极光,百度等)大致步骤都是一样的,这里就不多做解释了,我来说一下我为什么没有接受到推送的原因吧。
前提是保证这几点没有问题:

  1. 友盟平台上传的证书都是正确的。
  2. 代码中集成步骤没有错误。
  3. appkey和友盟平台上保持一致。

我在友盟平台上使用测试消息推送消息,能够接收成功,并且声音,角标都有。所以以上三点肯定是没有问题的,那么问题会出在哪里呢?

我就猜测是后台可能没有推送成功,就去后台那里查看是否推送成功,但是结果显示的是成功的。

然后就不知道问题出在哪里了!!!

找不到原因之后,还是觉得是后台的问题(实在是找不到自身的问题了),然后就去友盟平台查看了后台的技术文档,结果。。。发现一个重要的字段production_mode,这是什么呢?友盟给的有解释:

"production_mode":"true/false" // 可选 正式/测试模式。测试模式下,广播/组播只会将消息发给测试设备。
                                         测试设备需要到web上添加。
                                         iOS: 测试模式对应APNs的开发环境(sandbox),
                                              正式模式对应APNs的正式环境(prod), 
                                              正式、测试设备完全隔离。

去后台查看这个参数,设置的为true,怪不得接收不到呢,我们开发阶段使用的测试环境,正式设备和测试设备也是隔离的,所以设置为true,代表是正式环境,只有正式环境的设备能收到推送,测试设备是收不到的(测试设备要在web上添加哦)。让后台该为false,推送成功。

问题又来了,推送成功了,为什么没有声音和角标提示??

本来以为是移动端来设置的,但是iOS文档中没有这些设置,继续看后台文档(找不到自己的问题就找后台的问题喽),有发现以下字段:

"aps":                 // 必填 严格按照APNs定义来填写
    {
        "alert": "xx"          // 必填                    
        "badge": xx,           // 可选        
        "sound": "xx",         // 可选         
        "content-available":xx // 可选       
        "category": "xx",      // 可选, 注意: ios8才支持该字段。
    },

让后台查看,结果后台没有写badge和sound这两个参数,让后台加上,badge设置为1,sound设置为default,不要给空字符串,不然还是没声音(如果是自定义声音,可能给的是声音的路径,没有测试)。

至此,成功了,推送也有声音提示和角标提示了。

总结:

  1. 友盟平台上传的证书都是正确的。
  2. 代码中集成步骤没有错误。
  3. appkey和友盟平台上保持一致。
  4. 设置后台production_mode参数,测试环境设置false,正式环境设置true
  5. 设置后台badge,sound参数。
上一篇下一篇

猜你喜欢

热点阅读