PWA 中的地理位置权限需要明确的时机和降级体验
在不破坏信任或安装转化率的前提下请求位置信息的实用框架。
为什么这对 OpenPWA 很重要
地理位置是最强大但也最敏感的能力之一。在已安装的 PWA 中,权限提示出现在用户已选择保留在设备上的应用上下文中,因此信任风险更高。
时机不当或缺少上下文会导致永久拒绝和功能丢失。
位置请求的决策框架
- 仅在用户执行明显受益于位置的操作后请求(如“查找附近门店”)。
- 在浏览器提示出现前显示简短的应用内说明。
- 始终提供“暂不”或手动输入邮编的后备方案。
- 存储权限结果,切勿在每次访问时重复提示。
- 尊重
permission.state变化并相应更新界面。
官方来源事实
- Geolocation API 定义于 https://w3c.github.io/geolocation-api/
- 可通过 Permissions API 查询权限状态:https://developer.mozilla.org/en-US/docs/Web/API/Permissions_API
- Chrome 和 Edge 会显示一次性或持久提示;iOS 上的 Safari 显示更严格的表单。
生产级 PWA 检查清单
- [ ] 仅在与位置功能明确关联的用户手势后请求
- [ ] 提示前显示价值主张文案
- [ ] 优雅处理
GeolocationPositionError错误码 - [ ] 提供手动位置输入作为后备
- [ ] 使用合理的过期规则缓存最后已知位置
下一步行动
检查 PWA 中所有调用 getCurrentPosition 或 watchPosition 的位置。添加轻量级预提示 UI 组件,并在真实设备上测试完整的拒绝路径。