f***@duoguan.com
f***@duoguan.com
  • 发布:2026-03-13 17:50
  • 更新:2026-03-13 17:52
  • 阅读:12

【报Bug】Android集成 uniPush 模块后,即使配置 pushRegisterMode:"manual",应用首启仍会自动弹出通知权限授权框

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11专业版

HBuilderX类型: 正式

HBuilderX版本号: 4.87

手机系统: 全部

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

华为畅享70X 型号代码:BRE-AL80 HarmonyOS版本:4.2.0

操作步骤:
  1. 创建/使用集成 uniPush 的 uni-app 项目。
  2. 在 manifest.json 中配置 pushRegisterMode:"manual"。
  3. 云打包自定义基座。
  4. 真机卸载旧包后安装新包。
  5. 首次启动应用。
  6. 在隐私协议弹窗阶段即可看到系统通知权限授权框自动弹出。

预期结果:

当 manifest.json 中已配置 pushRegisterMode:"manual" 时,通知权限不应在应用启动时自动弹出,而应仅在业务代码主动调用相关接口或用户手动开启通知时再申请。

实际结果:

即使已经配置 pushRegisterMode:"manual",并且业务层已移除/注释启动阶段的 push 初始化代码,应用首次启动时仍然会自动弹出通知权限授权框。

bug描述:

问题现象:
项目集成 uniPush 模块后,Android 端在应用首次启动时,会在启动页/隐私协议弹窗阶段自动弹出“是否允许发送通知”的系统授权框。

已做过的排查:
最开始在 manifest.json 中已配置 uniPush,且 pushRegisterMode:"manual",当时 Android targetSdkVersion 为 30,应用首次启动时就会自动弹出系统通知权限授权框。
随后将 Android targetSdkVersion 升级到 33。
同时已声明 android.permission.POST_NOTIFICATIONS。
业务层启动阶段已不再主动调用 plus.push.getClientInfoAsync、uni.getPushClientId、initPush 等接口。
已重新云打包自定义基座,并在真机上卸载旧包后重新安装测试。
升级到 targetSdkVersion 33 后,现象仍然稳定复现。

怀疑原因:
怀疑是 uniPush/自定义基座原生层在应用启动阶段自动初始化,导致即使配置了 pushRegisterMode:"manual",仍然提前触发了 Android 13+ 的通知权限申请。

希望确认:
当前行为是否为 uniPush 或自定义基座的已知限制/底层逻辑。
pushRegisterMode:"manual" 在自定义基座场景下是否无法完全阻止启动阶段通知权限弹窗。
是否有官方推荐方式可以实现“仅在用户手动开启通知时再弹出 POST_NOTIFICATIONS 授权框”。

2026-03-13 17:50 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

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

感谢详细的bug反馈。经过对反馈内容的评审,分析如下:

1. 反馈完整性评价

优点:

  • 问题描述详细,已做过的排查步骤充分,体现了对问题的深入调查
  • 环境信息完整(HBuilderX 4.87正式版、Vue2、Android targetSdkVersion 33、自定义基座)
  • 复现步骤清晰,包含"卸载
内容为 AI 生成,仅供参考

要回复问题请先登录注册