背景
上次第一版打包上线后,无法使用推送失效。
第一版使用的是: websocket + h5puls
原因
估计是云打包后对这个做了一些编译处理。导致失效。
解决方案
- 用官网的教程,走个推服务器,取消后端自己的websocket实现。
- 虽然麻烦,但是他本身的确集成了好多共用功能,如离线消息再次登录时一起提示并通知。
开发流程
- 写前端代码
- 打包真机安装并运行
- 用配置测试,前端代码。
- 后端集成并测试
App.vue
export default {
onLaunch: function() {
// #ifdef APP-PLUS
const _self = this;
const _handlePush = function(message) {
// TODO
};
plus.push.addEventListener('click', _handlePush);
plus.push.addEventListener('receive', _handlePush);
// #endif
}
}
这里有个坑。
message.payload 是个字符串。需要自己转化一下。
const payload = {};
if(typeof msg.payload === 'string'){
payload = JSON.parse(msg.payload);
}else{
payload = msg.payload;
}
注意这里需要把cid给存到后端,否则将无法继续往后测试。
再配置里面,推送模板通知。
这里的代码就不写出来了,看个推的官网写demo。
后记
最好留一个日志服务,记录个推的msg.payload消息,有时候个推的msg.payload突然就不支持自定义消息了,这个问题我们找了好久,最后才知道是个推服务的问题,不是我们的代码问题。
参考资料
不同角色的用户登陆App,收到不同的待办提醒。即谁处理这个待办任务,谁会收到这个提醒。对不同角色的用户推送待办消息