Safari 16+中Notification.permission状态无法重置问题求助
Safari 16+ 通知权限重置后
Notification.permission仍显示granted的解决方案 问题描述
测试Safari 16.0至16.2版本的Service Worker Push API功能时,出现以下异常:
- 授权通知弹窗后,
Notification.permission状态变为granted - 通过「设置->网站->通知」路径移除目标网站权限并清空列表后,重新访问网站时,
Notification.permission仍保持granted,无法恢复至default状态 - 尝试清除浏览器缓存、更新Safari版本、重启浏览器均无法解决问题
解决步骤
- 彻底清除网站关联数据
打开Safari「设置->隐私->管理网站数据」,找到测试目标网站,点击「移除」按钮,完成后重启Safari。此操作会清除网站的权限记录、Service Worker注册信息等所有本地存储数据。 - 重置全局网站权限
若单网站数据清除无效,可尝试重置所有网站权限:- 完全关闭Safari浏览器
- 打开系统「设置->隐私与安全性->网站权限->通知」,确认目标网站已不在列表内
- 返回「隐私与安全性」页面,拉至底部点击「重置所有网站权限」,完成后重启Safari
- 注销关联的Service Worker
打开Safari开发者工具(快捷键Option+Command+I),切换到「Application」标签页,在左侧「Service Workers」面板中找到目标网站的Service Worker,点击「Unregister」按钮,刷新页面后重新检查权限状态。 - 验证重置效果
完成上述操作后重新访问网站,应会再次弹出通知授权请求弹窗,此时Notification.permission状态将恢复为default。
内容的提问来源于stack exchange,提问作者Zzap
相关产品推荐
相关产品推荐

