uni-app 华为本地创建消息无效

uni-app 华为本地创建消息无效

项目 信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10
HBuilderX类型 正式
HBuilderX版本号 3.3.13
手机系统 Android
手机系统版本号 Android 10
手机厂商 华为
手机机型 MXW-AN00
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

// 监听在线消息事件   
plus.push.addEventListener("receive", (msg)=>{  
    let badgeNum = parseInt(util.getLocalInfo().badgeNum)+1;  
    //屏蔽小米手机小米手机本身会处理  
    if(uni.getSystemInfoSync().brand != 'Xiaomi'){  
        //设置应用角标  
        plus.runtime.setBadgeNumber(badgeNum)  
    }  
    debugger  
    console.log("receive",msg)  
    let measureList = [];  
    var clent=uni.getSystemInfoSync().platform;  
    if (clent=='android'){  
      //如果是Android,当APP在线时,收到透传消息不会进入系统消息,需要发送本地提醒  
        var messageTitle = msg.title;  
        let messageContent ='该服药了!前往随医记标记已服用';  
        console.log(msg.aps);  
        plus.push.createMessage(messageContent, msg.payload, {title: messageTitle});  
    }  
    let str = msg.payload;  
    let url = '/pages/medRecord/medRecord?perDayOf='+str.perDayOfStr+"&planTakeTime="+str.timeStr+'&type='+str.type+"&measureType="+str.measureType;  
    // clearTimeout(timer);  
    timer = setTimeout(()=>{  
        uni.navigateTo({  
            url:url  
        })  
    },1500)   

},false);

操作步骤:

  • 收到通知

预期结果:

  • 正常通知

实际结果:

  • 没通知

bug描述:

  • 监听在线透传消息后创建消息无效
3 回复

发的什么类型的消息。receive回调进了吗


进了,试了小米的可以创建通知

在使用 uni-app 开发应用时,如果你在华为设备上遇到“本地创建消息无效”的问题,可能是由于以下原因导致的。以下是一些可能的解决方案:

1. 检查权限

  • 确保你的应用已经获取了必要的权限,例如通知权限。在华为设备上,通知权限可能会被系统限制,导致本地通知无法正常显示。
  • 你可以在应用的 manifest.json 文件中添加以下权限:
    {
      "permission": {
        "android.permission.POST_NOTIFICATIONS": {}
      }
    }

2. 检查通知渠道

  • 在 Android 8.0(API 级别 26)及以上版本中,通知必须通过通知渠道发送。确保你已经在代码中创建了通知渠道。
  • 你可以使用 uni.createPushMessageuni.createNotification 方法来创建通知,并确保指定了正确的通知渠道。

3. 检查华为设备的通知设置

  • 华为设备可能会对应用的通知进行限制。你可以进入设备的“设置” -> “应用管理” -> 找到你的应用 -> “通知管理”,确保通知权限已开启。

4. 检查代码逻辑

  • 确保你在代码中正确调用了创建通知的方法。例如:
    uni.createPushMessage({
      title: '测试通知',
      content: '这是一个测试通知',
      success: function (res) {
        console.log('通知创建成功');
      },
      fail: function (err) {
        console.log('通知创建失败', err);
      }
    });
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!