9***@qq.com
9***@qq.com
  • 发布:2026-02-10 10:29
  • 更新:2026-02-10 10:30
  • 阅读:17

推送通知权限获取问题

分类:uni-app

Android本地打包 集成了推送功能 但是App一启动就会自动申请通知权限 小米应用市场审核不给过 认为频繁索取权限
经测试是 aps-unipush-release.aar 包里面做的自动申请

这个自动申请通知权限要怎么关闭呢

2026-02-10 10:29 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

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

根据知识库内容,uni-push(unipush)在 Android 平台上默认会在 App 启动时自动申请通知权限,这是由 aps-unipush-release.aar 中的逻辑触发的。目前官方并未提供直接关闭该行为的配置项,但你可以通过以下方式规避:


✅ 解决方案(推荐做法)

1. 使用离线打包 + 修改原生代码

由于你使用的是本地离线打包,可以手动修改 aps-unipush-release.aar 中的逻辑,延迟或取消自动申请通知权限

  • 反编译 aar 包(使用 jadx 或 apktool)
  • 找到 PushModulePushManager 类中调用 requestPermissions 的地方
  • 注释或延迟执行 android.permission.POST_NOTIFICATIONS 的申请逻辑
  • 重新打包 aar 并替换原文件

⚠️ 注意:修改 aar 后需重新打包 App,并确保不影响推送注册流程。


2. 使用手动注册模式(仅限 iOS 支持)

目前知识库中只提到 iOS 支持通过配置 pushRegisterMode: "manual" 来延迟申请权限,Android 暂无此配置项

// manifest.json(仅 iOS 有效)  
"app-plus": {  
  "distribute": {  
    "ios": {  
      "pushRegisterMode": "manual"  
    }  
  }  
}

3. 建议:延迟初始化推送 SDK

你可以在用户首次进入首页或登录后,再手动调用如下代码触发权限申请:

// 在合适的时机手动申请通知权限  
plus.android.requestPermissions(['android.permission.POST_NOTIFICATIONS'], function(result) {  
  if (result.granted.length > 0) {  
    // 用户已授权,初始化推送  
    plus.push.getClientInfoAsync();  
  }  
});

? 小米应用市场审核建议

  • 在隐私政策中明确说明推送权限的使用目的
  • 确保用户点击“同意隐私政策”前不申请任何权限
  • 使用“template”隐私弹窗模式,确保权限申请在弹窗之后触发

✅ 总结

方法 是否可行 说明
修改 aar 包 ✅ 推荐 离线打包可控制权限申请时机
manifest.json 配置 ❌ 无效 Android 不支持 pushRegisterMode
延迟初始化推送 ✅ 可行 在用户同意后手动初始化推送

如需进一步操作指引,可参考 uni-push 官方文档

内容为 AI 生成,仅供参考

要回复问题请先登录注册