Skip to content

Latest commit

 

History

History
56 lines (34 loc) · 3.15 KB

T01.md

File metadata and controls

56 lines (34 loc) · 3.15 KB

T01 · Sensors

由 pnpm docs:lessons 生成;内容源 src/data/advanced.json,合同源 scripts/generate-advanced.mjs。含教师参考答案。前置:24、48。

目标与原理

模拟位置、方向和相关条件。区分坐标、权限和业务降级;Sensors 的位置与方向模拟不能覆盖全部真机环境。

坐标顺序

Geolocation 返回 latitude、longitude;业务函数须保持一致。

失败也属于契约

拒绝、不可用和超时是不同错误;都有可操作的降级。

方向不是视口

deviceorientation 的角度与 Device Mode 的横竖屏不是同一输入。

交互演示

改变位置观察业务分支。改变本课输入条件并预测结果;对照请求、状态或约束的关系;切换最小修复并复位,核对改变的范围。综合题先提交判断再解锁因果模型,所有模型不计完成。

商城实战

附近门店选错城市,或者定位失败后一直显示加载。

  1. 先用本地坐标与错误夹具理解三个分支;它们不是浏览器传感器。
  2. 打开 Sensors,选择 Shanghai 或自定义 31.23、121.47;在页面主动点击读取浏览器位置。
  3. 记录真实 coords 或 error.code;授权由你选择,不要求提供真实位置。
  4. 测试 Location unavailable,并与站点权限拒绝区分。
  5. 使用 Sensors 的 Orientation 预设,点击开始观察方向,对比 Device Mode 的视口。
  6. 应用针对性对照,再验证成功与三个失败分支,结束后恢复 Sensors 并停止监听。

独立挑战与参考答案

设计成功、拒绝与不可用测试。新输入与两种故障随机;可能再次抽到同种,不保证轮流。

配置 根因 实际证据 针对性验证
配置1 业务把 latitude 与 longitude 颠倒 输入 31.23/121.47 却传入 121.47/31.23 保持坐标顺序,使用 Sensors 改位置并核对门店
配置2 定位错误没有清除加载状态和显示手动选择 error.code=1/2/3 后仍处于 loading,手动选择不可用 分别触发拒绝、不可用和超时,显示手动选店
干扰项 只根据表面现象修改无关条件 没有保留条件与输入的一次截图 同时改变设备、数据与逻辑,只保留成功结果

三级提示

  1. 先复现 附近门店选错城市,或者定位失败后一直显示加载。
  2. 对照实际证据:输入 31.23/121.47 却传入 121.47/31.23;或 error.code=1/2/3 后仍处于 loading,手动选择不可用
  3. 一次只改变对应原因:保持坐标顺序,使用 Sensors 改位置并核对门店;或 分别触发拒绝、不可用和超时,显示手动选店

验收、边界与恢复

本地夹具完成与原生 Sensors / 权限结果分列;不强制获取真实定位。 保持输入、数量、环境一致;完成故障与正常对照,选择一致证据;三轮引导和两配置挑战分别取证,原生步骤与本地结果分列。停止后清理本会话资源,再恢复浏览器设置。

共同合同 · 本批验收 · 官方参考。