实现推送有两个步骤
1。 在开发者后台,找到相对应的项目,开通个推功能
新开通的项目,选择创建消息,即可打开下图页面, 即为开通成功
- 完成编码 本人写在App.vue的onLaunch生命周期当中
var info = plus.push.getClientInfo(); //5+api获取设备的clientid
var cid = info.clientid
plus.push.addEventListener( // 点击通知栏消息
"click",
function (msg) { // 点击通知栏后的回调
},
false
);
plus.push.addEventListener( // 监听在线消息事件
"receive",
function (msg) {
// 监听到在线消息推送后的回调
let payload = JSON.parse(msg.payload);
plus.push.createMessage(payload.body, payload.body, { // 主动推送至状态栏
title: payload.title,
});
},
false
);
简单说明一下,推送主要用到两个方法, click和receive
click 为点击了状态栏里的提示的监听回调
receive 为app在前台打开时,接收到后台的推送后的监听回调
如果应用不保活,则不会接受receive , receive消息会有一定的存储期 , 存储期由后台人员编写设置, 应用下次打开,存储期的应用会挨个出发receive
receive接受到的消息,不会显示在状态栏, 换言之不会有提示,仅仅是一个回调,客户端,需要使用5+api plus.push.createMessage() 来自己设置参数,弹出状态栏的提示框
状态栏的图标默认是打包 客户端的logo图
当receive接受到的消息时,可以让后台设置在线个推,离线厂商,但是本人注册了个平台的推送开发者,发现,没什么用, 而且,receive一直可以接收到,, 作者估计和手机的设置有关,,只有在手机的应用程序里强制停止了才算关掉? 我的华为,是关了后台,没有强制停止,收不到消息,,,我的一加8,关了后台,没强制停止,可以接受到, 就很魔性。
最后一点,需要在合适的页面,调用后台接口,将最开始获取 clientid 传给后端, 一台移动设备的 clientid 是固定的, 后端用次字段,判断消息发送给谁