“找附近门店”只是便利功能,不能因为用户拒绝定位就封住门店列表。先设计无定位路径:手动输入区域、阅读门店列表并查看联系方式。距离最近,也不代表有库存、档期或服务覆盖。
适用读者与交付决定
多门店零售及预约服务网站。把本题作为给建站或技术供应方的验收任务;需要真实系统证据的地方不能由演示文件代替。
官方依据与解释边界
Geolocation API 需要安全上下文与用户许可,失败时可通过错误回调处理。浏览器支持与定位质量有差异。 MDN: geolocation · 核对日期:2026年10月16日。
已填写教学例子
合成例子,不是真实客户案例。 输入、预期及反例如下;真实平台尚未按此例集成测试。
窄屏可横向滚动表格。
| 输入/情况 | 检查口径 | 预期结果 |
|---|---|---|
| 拒绝 | 无坐标 | 手动查询 |
| 超时 | 无坐标 | 可重试,保留手动 |
| 允许且有坐标 | 估计位置 | 排距离,不承诺可用 |
怎样执行验收
- 分别测试允许、拒绝和超时。
- 核对手动查询不需要定位许可,且可查看同等门店信息。
- 库存与预约放到具体门店的后续查询,不由距离推断。
如何解释结果与保留证据
例子选择回退路径,并不计算距离。缺少坐标时继续保持未知,不用0,0或IP推断的精确地址冒充。教学验收记录只保留权限状态与页面路径,不保存访问者位置。
适用边界
这些文件不会触发真实定位请求。不覆盖路线规划、紧急服务范围或区域可用性承诺。
离线复核
保存下方两份文件到同一目录,用Node22.13或更新版本执行。模型只验证有限输入,不代表真实服务或认证。 已填输入及预期输出 · 可检查的函数
node decision-check.mjs store-locator-permission-fallback.json