最近有项目使用了uni-push1.0来进行消息推送功能,这里主要分享一下IOS的离线推送收不到消息的问题
IOS离线收不到消息,基本是上传的推送证书有问题
贴一下我的相关文件:
两个注意点:
1.profile/CertificateSigningRequest.certSigningRequest :证书请求文件
在 iOS Dev Center创建certificates时使用同一个证书请求文件,包括创建推送证书
2.profile/push.p12:推送证书
需要上传的推送证书,不要用这个证书去打包!!或者上传你的打包证书
如何测试上传的推送证书是否生效
在【Uni Push】-【配置管理】-【故障排查】-【 检测CID的状态及信息:】中输入CID查询,拿到苹果的devicetoken
把这个devicetoken复制一下
在【Uni Push】-【配置管理】-【故障排查】- 【应用配置】点击右下方的 立即测试,粘贴刚才的devicetoken,去掉后面的【,,,】
如果devicetoken后面带着 developement,说明是开发环境,在测试的时候需要选择开发环境,也是同样需要去掉后面【,,developement,】
测试如果弹出 连接异常 就是证书不对,建议再走一遍证书生成的流程,重新上传证书需要重新提交云打包
证书正常,应用离线也可以收到消息
设置角标
离线推送一般会设置应用角标,由于使用unipush1.0,后端调用个推推送接口的参数:auto_badge 设置为 1就行
"push_channel": {
“android”:{},
},
"ios": {
"aps": {
"alert": {
"body": "告警测试",
"title": "测试"
},
"content_available": 0,
"sound": "default"
},
"auto_badge": " 1",
"payload": "{\"title\":\"测试\",\"content\":\"告警测试\"}"
}
}
应用监听通知栏的点击事件,然后再将角标清0,建议写在App.vue里面
plus.push.addEventListener('click', (msg) => {
console.log('click', msg);
plus.runtime.setBadgeNumber(0)
// TODO
})
有问题可以联系 Q:2377995017
0 个评论
要回复文章请先登录或注册