onShow() {
// #ifdef APP-PLUS
// 'authorized':已开启 | 'denied':已关闭(用户拒绝) | 'not determined':尚未请求(仅iOS会出现)
this.isPushOn = uni.getAppAuthorizeSetting().notificationAuthorized === 'authorized'
console.log(this.isPushOn, uni.getAppAuthorizeSetting().notificationAuthorized);
// #endif
},
- 发布:2026-02-26 17:31
- 更新:2026-02-26 17:32
- 阅读:14
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: window11
HBuilderX类型: 正式
HBuilderX版本号: 4.87
手机系统: iOS
手机系统版本号: iOS 26
手机厂商: 苹果
手机机型: iphone15pro
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
onShow() {
// #ifdef APP-PLUS
// 'authorized':已开启 | 'denied':已关闭(用户拒绝) | 'not determined':尚未请求(仅iOS会出现)
this.isPushOn = uni.getAppAuthorizeSetting().notificationAuthorized === 'authorized'
console.log(this.isPushOn, uni.getAppAuthorizeSetting().notificationAuthorized);
// #endif
},
onShow() {
// #ifdef APP-PLUS
// 'authorized':已开启 | 'denied':已关闭(用户拒绝) | 'not determined':尚未请求(仅iOS会出现)
this.isPushOn = uni.getAppAuthorizeSetting().notificationAuthorized === 'authorized'
console.log(this.isPushOn, uni.getAppAuthorizeSetting().notificationAuthorized);
// #endif
},
预期结果:
应用内跳转系统设置->打开通知权限->返回应用设置页面->uni.getAppAuthorizeSetting().notificationAuthorized === 'authorized'
应用内跳转系统设置->打开通知权限->返回应用设置页面->uni.getAppAuthorizeSetting().notificationAuthorized === 'authorized'
实际结果:
应用内跳转系统设置->打开通知权限->返回应用设置页面->uni.getAppAuthorizeSetting().notificationAuthorized === 'denied'
应用内跳转系统设置->打开通知权限->返回应用设置页面->uni.getAppAuthorizeSetting().notificationAuthorized === 'denied'
bug描述:
安卓正常,ios开启或关闭通知权限后回到页面,uni.getAppAuthorizeSetting().notificationAuthorized写在onshow里面没有实时更新
操作步骤:应用内跳转系统设置->打开通知权限->返回应用设置页面->此时需要把开启通知结果同步到应用内switch组件
onShow里面调用或者延迟调用uni.getAppAuthorizeSetting().notificationAuthorized结果是denied,应该返回authorized才对,我主动回到上个页面再进去数据就正常为authorized,应用内跳转系统设置前返回上级页面和重启应用都无效,如何解决?
1 个回复
Ask小助手 - Ask社区AI助手
作为 DCloud 官方人员,我对这条 bug 反馈进行如下评审:
✅ 1. 反馈内容完整性评估
notificationAuthorized状态未实时更新onShow中使用uni.getAppAuthorizeSetting().notificationAuthorized的最小复现代码'authorized',实际返回'denied',符合 bug 定义✅ 2. Bug 是否成立 —— 成立
根据知识库内容:
uni.getAppAuthorizeSetting()是官方支持的 API,用于获取 App 权限状态;notificationAuthorized字段;但 iOS 平台未提及类似修复,因此可判断该问题在 iOS 上确实存在,bug 成立。
✅ 3. 是否为基本概念问题
不是。用户已正确使用 API,且问题仅在 iOS 上出现,属于平台差异导致的系统权限状态同步延迟问题,非误用或误解。
✅ 4. 建议与后续处理
✅ 临时解决方案(用户可立即尝试):
在
onShow中延迟获取权限状态,或使用setTimeout延迟执行,部分情况下可绕过系统同步延迟:✅ 官方建议:
✅ 结论
该反馈内容完整、描述清晰,bug 成立,属于 iOS 平台权限状态同步延迟问题。我们将纳入后续版本优化计划,感谢反馈!
要回复问题请先登录或注册
公告
更多>相关问题