1、第一个坑指定用户推送
指定推送push_clientid时项目必须集成uni统计且在manifest.json中配置push_clientid上传
"uniStatistics" : {
"enable" : true,
"collectItems" : {
"uniPushClientID" : true
}
}
配置后重新运行重启app后在云服务器的设备表(opendb-device)中要能查询到push_clientid才能实现指定用户推送,否则都是全量用户推送
2、iOS在线接收会闪退
uniPush.sendMessage({
"push_clientid": pushClientId, //填写上一步在uni-app客户端获取到的客户端推送标识push_clientid
"force_notification": true, //填写true,客户端就会对在线消息自动创建“通知栏消息”。
"title": "消息通知",
"content": content,
"payload": null,
"badge": 0,
"category": {
"harmony": "SUBSCRIPTION",
"huawei": "SUBSCRIPTION",
"vivo": "SUBSCRIPTION"
}
})
如上如果某个字段值出现null就会出现iOS在线推送APP就会闪退,这里我们一般会形成接口提供给自己的后端调用,所以所有字段都需要加非空判断
3、鸿蒙必须在App.vue文件中onLaunch里注册uni.onPushMessage才能接收通知栏推送
如果未注册的话在uni-push后台推送能收到,但是使用uniPush.sendMessage推送完全收不到,Android、iOS没有该问题
以上三个坑我踩了三天,希望对大家能有所帮助