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.createPushMessage
或uni.createNotification
方法来创建通知,并确保指定了正确的通知渠道。
3. 检查华为设备的通知设置
- 华为设备可能会对应用的通知进行限制。你可以进入设备的“设置” -> “应用管理” -> 找到你的应用 -> “通知管理”,确保通知权限已开启。
4. 检查代码逻辑
- 确保你在代码中正确调用了创建通知的方法。例如:
uni.createPushMessage({ title: '测试通知', content: '这是一个测试通知', success: function (res) { console.log('通知创建成功'); }, fail: function (err) { console.log('通知创建失败', err); } });