华为应用审核被拒 uni-app HarmonyOS系统版本 在用户同意隐私政策前申请通知权限

华为应用审核被拒 uni-app HarmonyOS系统版本 在用户同意隐私政策前申请通知权限

测试过的手机:

nova 8 HarmonyOS 4.2.0

操作步骤:

  • 在隐私权限框弹出后申请权限

预期结果:

  • 在隐私权限框弹出后申请权限

实际结果:

  • 使用HarmonyOS 2.0.0 正常,HarmonyOS 4.2.0会在隐私权限框弹出前申请权限

bug描述:

华为开发开放平台:在用户同意隐私政策前,您的申请访问精确位置,访问大致位置权限|应用获取用户信息:MAC地址,ANDROID ID,不符合相关法律法规要求。 没有调用https://uniapp.dcloud.net.cn/tutorial/app-disagreemode.html里面相关被限制的API 已配置androidPrivacy.json

“disagreeMode” : { “support” : false, “loadNativePlugins” : false, “visitorEntry” : false, “showAlways” : false }


![](https://www.itying.com/uniimg.php?url=https://img-cdn-tc.dcloud.net.cn/uploads/questions/20251210/e0470cbe83b489915c34764fd3927219.png)

更多关于华为应用审核被拒 uni-app HarmonyOS系统版本 在用户同意隐私政策前申请通知权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

该bug反馈内容基本完整但存在关键缺失:标题和描述清晰说明了华为应用审核因提前申请权限被拒的问题,提到了已配置androidPrivacy.json且disagreeMode.support设为false,并指出了HarmonyOS 2.0.0正常而4.2.0异常的现象。但缺少具体代码示例展示权限申请逻辑,复现步骤描述矛盾(标题称"弹出前申请",复现步骤却写"弹出后申请"),且未明确说明应用类型(uni-app/uni-app-x)。分类信息中HBuilderX版本(4.85)和平台信息完整,但"手机OS平台:全部"表述不准确,问题仅出现在HarmonyOS 4.2.0。
根据知识库判断bug成立:华为市场存在特殊审核机制,常见问题-9明确说明"其他市场能上架但华为被拒,可能是华为仍检测旧版APK"。用户配置disagreeMode.support:false符合规范,但HarmonyOS 4.2.0系统级变更可能导致权限申请时机变化。需注意uni-app在鸿蒙平台不读取app-plus配置,应通过createRequestPermissionListener监听权限申请时机,确保在隐私协议同意后触发。建议:1) 联系华为市场重新检测新版APK;2) 检查是否有插件隐式申请权限;3) 使用权限监听API控制申请时机。 内容为 AI 生成,仅供参考

更多关于华为应用审核被拒 uni-app HarmonyOS系统版本 在用户同意隐私政策前申请通知权限的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


根据你的描述,这是HarmonyOS 4.2.0系统行为变更导致的合规性问题。核心在于系统版本升级后,应用启动时序发生了变化,导致在隐私协议弹窗展示前,某些权限或设备信息获取行为被提前触发。

问题分析:

  1. 系统差异:HarmonyOS 2.0.0与4.2.0在应用启动和权限申请时序上存在差异。4.2.0版本可能更严格地执行了“在用户同意隐私政策前,不得收集任何信息”的合规要求。
  2. androidPrivacy.json配置:你当前的配置将disagreeMode.support设为false,这意味着应用不支持“不同意隐私协议模式”。当用户未同意隐私协议时,应用理论上不应进行任何可能收集信息的操作(包括提前申请权限)。
  3. 被拒原因:审核日志指出应用在隐私协议弹窗前申请了位置权限,并尝试获取MAC地址、ANDROID ID。这直接违反了华为的审核规范。

解决方案: 你需要确保在用户明确点击同意隐私协议后,才能触发任何权限申请或设备信息读取。在uni-app中,最可靠的实现方式是:

  1. 修改androidPrivacy.json:将disagreeMode.support设置为true,启用“不同意隐私协议模式”。在此模式下,应用会提供一个纯静态的隐私协议展示页,直到用户同意后,才会进入真正的应用逻辑。
    {
        "disagreeMode": {
            "support": true,
            "loadNativePlugins": false,
            "visitorEntry": false,
            "showAlways": false
        }
    }
回到顶部