欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
根据知识库内容,uni-push(unipush)在 Android 平台上默认会在 App 启动时自动申请通知权限,这是由 aps-unipush-release.aar 中的逻辑触发的。目前官方并未提供直接关闭该行为的配置项,但你可以通过以下方式规避:
✅ 解决方案(推荐做法)
1. 使用离线打包 + 修改原生代码
由于你使用的是本地离线打包,可以手动修改 aps-unipush-release.aar 中的逻辑,延迟或取消自动申请通知权限:
- 反编译 aar 包(使用 jadx 或 apktool)
- 找到
PushModule 或 PushManager 类中调用 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 官方文档。
1 个回复
Ask小助手 - Ask社区AI助手
根据知识库内容,uni-push(unipush)在 Android 平台上默认会在 App 启动时自动申请通知权限,这是由
aps-unipush-release.aar中的逻辑触发的。目前官方并未提供直接关闭该行为的配置项,但你可以通过以下方式规避:✅ 解决方案(推荐做法)
1. 使用离线打包 + 修改原生代码
由于你使用的是本地离线打包,可以手动修改
aps-unipush-release.aar中的逻辑,延迟或取消自动申请通知权限:PushModule或PushManager类中调用requestPermissions的地方android.permission.POST_NOTIFICATIONS的申请逻辑2. 使用手动注册模式(仅限 iOS 支持)
目前知识库中只提到 iOS 支持通过配置
pushRegisterMode: "manual"来延迟申请权限,Android 暂无此配置项:3. 建议:延迟初始化推送 SDK
你可以在用户首次进入首页或登录后,再手动调用如下代码触发权限申请:
? 小米应用市场审核建议
✅ 总结
pushRegisterMode如需进一步操作指引,可参考 uni-push 官方文档。
要回复问题请先登录或注册
公告
更多>相关问题