1***@qq.com
1***@qq.com
  • 发布:2026-02-06 15:22
  • 更新:2026-02-10 16:36
  • 阅读:45

华为鸿蒙系统上 androidPrivacy.json 隐私弹窗与系统通知权限弹窗同时弹出

分类:uni-app

问题描述:
在华为鸿蒙系统上,应用启动时隐私政策弹窗(androidPrivacy.json配置)和系统通知权限弹窗会同时弹出,而其他Android系统能正确按顺序显示(先隐私后通知)。

环境信息:

  • uni-app:[vue3]
  • HBuilderX 版本:[4.85]
  • 华为鸿蒙系统版本:[HarmonyOS4.0]
  • 设备型号:[HUAWEI P50]

复现步骤:

  1. 配置 androidPrivacy.json 使用 template 模式
  2. manifest.json 中配置 Push 模块和 hms 推送
  3. 在华为鸿蒙手机上安装并启动应用
  4. 观察弹窗显示顺序

期望结果:
隐私弹窗先显示,用户同意后再显示通知权限弹窗

实际结果:
两个弹窗同时弹出

2026-02-06 15:22 负责人:DCloud_Android_THB 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uni-app鸿蒙化技术交流群 ) 咨询,群中有相关专业的管理员和群友。

在鸿蒙系统上,androidPrivacy.json 的 template 隐私弹窗并不会像 Android 那样在应用启动时自动、阻塞式地弹出;而 HMS-Push 等模块在应用启动阶段就会立即初始化并请求通知权限,因此两个弹窗几乎同时出现。
这是鸿蒙平台与 Android 的差异导致的,目前无法通过简单配置让 androidPrivacy.json 的弹窗“阻塞”后续权限弹窗。

可行的解决思路

  1. 关闭 template 自动弹窗
    把 androidPrivacy.json 里的 prompt 设为 "none",不再依赖框架自动弹窗。

  2. 自己实现隐私弹窗
    在 app.vue 的 onLaunch 里先判断 plus.runtime.isAgreePrivacy():

    • 若未同意,先展示自定义隐私组件(nvue 或 vue 页面均可)。
    • 用户点击“同意”后调用 plus.runtime.agreePrivacy(),再去初始化 Push 或调用需要通知权限的 API。
      这样就能保证“先隐私、后权限”的顺序。
  3. 若仍想用华为托管的隐私协议
    需通过 uts 插件主动调用 requestAppPrivacyConsent,并在回调成功后再初始化 Push,同样能达到顺序控制的目的。开发阶段记得加 debug 参数模拟线上流程,上架后移除即可。

参考文档
鸿蒙如何设置隐私协议弹窗

内容为 AI 生成,仅供参考
DCloud_Android_THB

DCloud_Android_THB

提供一下 appid,我看看

要回复问题请先登录注册