您的位置:首页 > 移动开发 > IOS开发

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

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

前提是保证这几点没有问题:

1. 友盟平台上传的证书都是正确的。

2. 代码中集成步骤没有错误。

3. appkey和友盟平台上保持一致。

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

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

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

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

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


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

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

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

"aps":                 // 必填 严格按照APNs定义来填写
{
"aler
4000
t": "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参数。

同步简书地址:https://www.jianshu.com/p/5469b8ec4e95
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: