uni-app中plus.runtime.setBadgeNumber方法在华为nova系列手机中无效,已在nova7和nova11型号手机中发现,推测其他nova系列手机可能存在类似问题
uni-app中plus.runtime.setBadgeNumber方法在华为nova系列手机中无效,已在nova7和nova11型号手机中发现,推测其他nova系列手机可能存在类似问题
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 无 | HBuilderX |
操作步骤:
业务代码中编写plus.runtime.setBadgeNumber(5)任意角标数量,离线打包apk后,在华为nova系列手机中安装打开,app角标未设置上,在华为p30和mate30手机中app角标可设置上。
预期结果:
业务代码中编写plus.runtime.setBadgeNumber(5)任意角标数量,离线打包apk后,在华为nova系列手机中安装打开,app角标数量可设置上
实际结果:
业务代码中编写plus.runtime.setBadgeNumber(5)任意角标数量,离线打包apk后,在华为nova系列手机中安装打开,app角标数量没有设置上,无角标显示
bug描述:
业务代码中编写plus.runtime.setBadgeNumber方法,离线打包apk后,在华为nova系列手机中安装打开,app角标未设置上,在华为p30和mate30手机中app角标可设置上。
1 回复
在 uni-app
中使用 plus.runtime.setBadgeNumber
方法设置应用角标时,如果在华为 Nova 系列手机(如 Nova 7 和 Nova 11)中无效,可能是由于以下原因:
1. 华为手机系统限制
- 华为手机(尤其是 EMUI 或 HarmonyOS 系统)可能对应用角标功能有特定的限制或要求。某些型号或系统版本可能不支持标准的角标设置方法。
- 华为手机通常需要应用在后台运行或使用华为推送服务(HMS)来设置角标。
2. 角标权限问题
- 华为手机可能需要用户手动开启角标权限。如果用户未授权,角标功能将无法生效。
- 检查应用是否在华为手机的应用管理中有角标权限,并提示用户开启。
3. HMS 推送服务
- 华为手机通常依赖华为推送服务(HMS)来管理角标。如果应用未集成 HMS 或未正确配置推送服务,角标功能可能无法正常工作。
- 确保应用已集成 HMS Core SDK,并使用华为推送服务来设置角标。
4. 系统版本差异
- 不同型号的华为手机可能运行不同的系统版本(如 EMUI 10、EMUI 11 或 HarmonyOS),这些版本对角标的支持可能存在差异。
- 检查目标手机的系统版本,并针对不同版本进行适配。
解决方案
1. 检查角标权限
- 提示用户手动开启角标权限。可以通过以下代码检查并跳转到权限设置页面:
plus.runtime.openSettings();
- 在华为手机的应用管理中,找到应用并确保角标权限已开启。
2. 集成华为推送服务(HMS)
- 如果应用需要支持华为手机的角标功能,建议集成华为推送服务(HMS)。
- 参考华为官方文档,集成 HMS Core SDK 并使用推送服务设置角标。
3. 使用插件或第三方服务
- 如果
plus.runtime.setBadgeNumber
方法在华为手机中无效,可以考虑使用第三方插件或服务来实现角标功能。 - 例如,使用
uni-push
或其他推送服务,结合华为推送服务(HMS)来设置角标。
4. 兼容性处理
- 在代码中增加对华为手机的兼容性处理。例如,检测设备型号或系统版本,针对华为手机使用特定的角标设置方法。
const systemInfo = uni.getSystemInfoSync(); if (systemInfo.brand === 'HUAWEI') { // 针对华为手机的特殊处理 // 例如,使用华为推送服务设置角标 } else { // 使用标准的 plus.runtime.setBadgeNumber 方法 plus.runtime.setBadgeNumber(5); }