iOS 集成友盟推送接受不到推送,推送成功后无声音提示和角标显示
2017-03-27 本文已影响2082人
走向菜鸟的菜鸟
最近项目中要集成友盟推送,之前没有做过友盟的推送,所以就研究了一下文档,集成步骤和其他的推送平台(极光,百度等)大致步骤都是一样的,这里就不多做解释了,我来说一下我为什么没有接受到推送的原因吧。
前提是保证这几点没有问题:
- 友盟平台上传的证书都是正确的。
- 代码中集成步骤没有错误。
- 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,不要给空字符串,不然还是没声音(如果是自定义声音,可能给的是声音的路径,没有测试)。
至此,成功了,推送也有声音提示和角标提示了。
总结:
- 友盟平台上传的证书都是正确的。
- 代码中集成步骤没有错误。
- appkey和友盟平台上保持一致。
- 设置后台production_mode参数,测试环境设置false,正式环境设置true
- 设置后台badge,sound参数。