plus.push.createMessage(content, JSON.stringify(msg.payload),{
cover:false,
sound:"system",
title:title
} )

- 发布:2025-07-01 12:06
- 更新:2025-07-01 14:27
- 阅读:83
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Microsoft Windows 11 专业版 10.0.26100 26100
HBuilderX类型: 正式
HBuilderX版本号: 4.24
手机系统: HarmonyOS NEXT
手机系统版本号: HarmonyOS NEXT Developer Beta2
手机厂商: 华为
手机机型: huawei mate 60
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
app 进程在后台,点击通知栏打开app
app 进程在后台,点击通知栏打开app
实际结果:
app 进程在后台,点击通知栏打不开app
app 进程在后台,点击通知栏打不开app
bug描述:
1.创建本地通知
plus.push.createMessage(content, JSON.stringify(msg.payload),{
cover:false,
sound:"system",
title:title
} )
2.切换app 的进程在后台,点击通知栏的信息打不开app,但是plus.push.addEventListener("click")里的方法是执行的。
手机是华为手机mate 60,版本号是4.2
后台弹窗的权限已打开
麻烦各位大神帮忙看一下,非常感谢!
1***@qq.com (作者)
对的,可以直接生成本地通知的,但是app 进程在后台之后,我点击通知栏打开是不会打开app 的,麻烦帮忙看一下
2025-07-01 14:39
DCloud_UNI_yuhe
回复 1***@qq.com: 你提供一下完整的可以直接运行的代码我看一下
2025-07-01 14:45
1***@qq.com (作者)
回复 DCloud_UNI_yuhe: export default {
init: () => {
// #ifdef APP-PLUS
plus.push.setAutoNotification(true); //设置通知栏显示通知 //必须设置
// 监听用户点击通知事件
plus.push.addEventListener("click", function(msg) {
console.log("收到点击通知事件:", JSON.stringify(msg));
pushHandle(msg) //处理方法
plus.push.clear(); //清空通知栏
}, false);
}
// 渲染通知数字
const setBadgeNum=(num)=>{
uni.setStorageSync('bageNumber',num);
plus.runtime.setBadgeNumber(num);
}
// 渲染在通知了上
const renderPush=(msg)=>{
let title =msg.title;
if(msg.content&&msg.content.title1){
title =msg.content.title1;
}
let content="新消息";
if(msg.content&&msg.content.body){
content =msg.content.body;
}
let options={
cover:false,
sound:"system",
title:title
}
try {
let nums = uni.getStorageSync('bageNumber')||0;
if(nums){
nums=nums*1;
}
setBadgeNum(nums+1);
plus.push.createMessage(content, JSON.stringify(msg.payload),options);
}
// 處理push
const pushHandle = (msg) => {
if(!msg) return false;
// 清除app角标
setBadgeNum(0);
// iOS的payload可能是字符串,需要解析
if (typeof (msg.payload) == 'string') {
try {
msg.payload = JSON.parse(decodeURIComponent(msg.payload));
} catch(e) {
console.error("解析payload失败:", e);
}
}
}
2025-07-01 14:56
DCloud_UNI_yuhe
回复 1***@qq.com: #ifdef APP-PLUS 都不会在鸿蒙上执行的
2025-07-01 14:57
1***@qq.com (作者)
回复 DCloud_UNI_yuhe: 那我现在就是执行了的,鸿蒙4.2.0,不过我现在用的是自定义基座测试
2025-07-01 15:13
1***@qq.com (作者)
回复 DCloud_UNI_yuhe: 貌似回复没有图片可以上传
2025-07-01 15:14
DCloud_UNI_yuhe
回复 1***@qq.com: 你问题分类写错了,这个不是鸿蒙 next
2025-07-01 15:16
1***@qq.com (作者)
回复 DCloud_UNI_yuhe: 哦哦,不好意思,那帮忙看看,我用小米手机测试也是一样
2025-07-01 15:38
1***@qq.com (作者)
回复 DCloud_UNI_yuhe: 大佬,除了这个点击通知进不去APP 里面。还有一个问题,麻烦帮我看看是不是正常的。后台java 推送的格式用的是自定义格式,在华为手机上app 在后台的时候是触发不到plus.push.addEventListener(‘receive') 创建不了本地通知,但是小米手机在线和app 在后台的情况都是可以创建本地通知。这个是正常的吗?谢谢哈
2025-07-01 15:45