由于相关的文档冗杂,社区、QQ群互动差,完全是一步一个坑爬过来,稍微做个总结。后续开发中也可以给自己理个思路,欢迎指正。
安卓端
安卓端暂不考虑推送进程被系统杀除的情况(其实我无解)。开发的这个是新闻类的应用,所以推送的应用场景大多数在点击消息通知后跳转至新闻情况页。
无论应用离线或在线的情况下只要使用标准的透传消息格式即可成功,应用中只需要监听click写相关事件即可。标准的透传格式为
{title:"通知标题",content:"通知内容",payload:"通知去干嘛这里可以自定义"}
不符合以上格式的推送内容则会触发receive事件,安卓端上只要推送的工作人员注意就不会有问题。
iOS端
iOS端应用推送的时候分两个场景,分别是:
- 应用在线 应用在线的情况下实测收不到APNS下发的通知。推送之后需要在receive中本地创建一条推送通知,看很多开发者是使用confirm提醒用户的,我这边做了一个toast+提示音的方式提醒用户有新通知。个推平台上填写时必填内容填一下,“消息内容”中填写
{"content":"需要推送的标题","payload":"传值用"}
客户端上处理一下数据就可以了。
- 应用离线 应用离线的情况下可以收到APNS下发的通知。离线推送的时候需要注意一下非必填项也需要填写一下,不然客户端会发生有震动有声音但是通知不显示的情况。这时候的消息内容中填写payload的值,在body里直接填写要显示的标题就可以了。
必看
一、 参数配置 《推送开发指南》中有详情介绍,这点不阐述,申请完个推账户,将新建的应用参数填写到manifest.json中即可
二、 注意事项
- iOS推送的时候只支持content,原先安卓中填写的title默认为应用名称。
- 应用在线时推送的消息由于是本地创建的会再触发receive事件,发生循环创建消息导致应用闪退的问题。所以首次receive事件触发并创建本地消息的同时需要在payload里携带一个参数用以区分。
- iOS推送测试的时候一定要把推送的证书上传到个推上,不然无法接收到APNS消息的。 打包的时候不要把和个推上已经上传的推送证书搞错了。
5 个评论
要回复文章请先登录或注册
8***@qq.com
jtshushu
wen如故i
TomVision (作者)
wen如故i