1.已经设置和配置push消息推送,但是直接使用 plus.runtime.setBadgeNumber(10)角标不显示,手机型号为Redmik70;
- 使用plus.push.createMessage();创建消息,角标可以出现然后消息中心那里也出现消息,但是消息中心那里最多只能显示9条,然后角标也只显示9条,这个要怎么办?
//这是在App.vue中调用的 onHide: function() { //#ifdef APP-PLUS this.IntervalId = setInterval(() => { console.log("IntervalId===>onHide"); // this.jnpf.remove(); // 这里通过setInterval来查询数据,判断是否需要推送消息 getWaitTotal().then((res) => { let Num = res.data; // let Num = 35; this.jnpf.create( "点击查看信息", { url: "/pages/index/workFlow", }, { delay: 0, title: `你有${Num}条待办的事宜`, }, true, 1 ); }); }, 2000); //#endif },
// =======================以下是消息推送方法 getAllMessage() { return plus.push.getAllMessage(); }, changeBadge(number) { // console.log("number", number); console.log("触发了更新角标"); const messages = this.getAllMessage(); console.log("messages", messages.length); console.log("messages", messages); plus.runtime.setBadgeNumber(number || messages.length); }, /** * @param {string} content 消息内容 * @param {Object} payload 消息承载的数据 * @param {Object} options 消息配置 * @param {Boolean} isChange 创建消息后是否更新BadgeNumber * @example * this.$push.create("点击查看消息内容>>", {url: "/pages/xxxx/xxx"}, { delay: 3, title: "您有3条新的消息", }); */ create(content, payload = {}, options, isChange, num) { plus.push.createMessage(...arguments); this.changeBadge(num) const delay = options.delay ? ~~options.delay * 1000 : 0; setTimeout(() => { isChange && this.changeBadge(num); }, delay); }, init() { console.log("初始化推送"); plus.push.setAutoNotification(true); // setAutoNotification 默认就是true // 监听消息接收事件 plus.push.addEventListener("receive", (message) => { console.log("收到消息", message); // 处理接收到的消息 const payload = message.payload || {}; if (payload.url) { // 你可以在后台显示通知或处理其他逻辑 console.log("消息包含URL:", payload.url); } else { console.log("消息不包含URL"); } }); // 监听消息点击事件 plus.push.addEventListener("click", (message) => { console.log("监听消息点击事件", message); let { url } = message.payload; console.log("url", url); if (url) { console.log("有url", url); uni.switchTab({ url, success: () => { this.remove(message, true); }, // 可以根据需求删除消息 this.remove(message); complete: () => {}, // 可以根据需求删除消息 this.remove(message); }); } else { console.log("没有url"); } }); },