移动端定位打卡怎么做:GPS、电子围栏、WiFi 和蓝牙

移动端打卡看似简单,真正上线后最常见的问题却是:"我明明到了,为什么系统说不在范围?"所以定位打卡不能只依赖一个经纬度点,而要把定位、电子围栏、WiFi、蓝牙、离线缓存一起设计。

这套智慧考勤移动端基于 uni-app,打卡页会读取考勤规则、考勤时间、区域坐标、WiFi 和蓝牙设备,再判断当前是否满足打卡条件。

定位只是第一步

移动端通过定位接口获取经纬度、地址、定位时间和设备来源。前端工具里还包含点是否在多边形内的判断函数,用于匹配后台配置的考勤区域。

但定位会受楼宇、网络、权限、手机系统影响,所以系统不能只把 GPS 当唯一依据。项目里同时支持 WiFi 配置和蓝牙设备配置,目的就是让"人在现场"有更多可验证信号。

电子围栏适合园区和固定地点

PC 后台有考勤区域维护和地图多边形选择页面,说明管理员可以画出考勤范围。移动端拿到 `areaJson` 后解析坐标,判断当前位置是否在区域内。

电子围栏适合工厂、园区、学校、项目驻点等场景。它比固定半径更灵活,可以按真实边界画范围,减少"门口到了但半径不准"的问题。

WiFi 和蓝牙是定位的补充证据

代码中有 `kqWifiConfigList`、`kqBluetoothDeviceList`,移动端也封装了 WiFi 和蓝牙扫描能力。

WiFi 适合办公室、门店、厂区内部;蓝牙适合更小范围的点位,比如门岗、车间、仓库。它们不是替代 GPS,而是补充证据。

一个更稳的策略是:定位判断大范围,WiFi/蓝牙验证现场信号。这样既避免员工远程伪造,也减少定位漂移导致的误判。

离线缓存不能省

移动端代码里有离线提示,也有本地缓存打卡和轨迹数据的逻辑。这个设计很现实:员工打卡现场可能网络差,不能因为网络失败就直接丢数据。

离线缓存要注意三件事:

  • 保存原始打卡时间,而不是补传时间。
  • 保存定位、图片、事由等原始证据。
  • 补传后要避免重复生成记录。

后端必须再次校验

前端可以判断是否在范围内,但不能把前端判断当最终结果。后端 `clock` 接口会根据用户、规则、时间和类型重新处理打卡记录。

原因很简单:移动端环境不可控,前端参数也可能异常。智慧考勤应该把前端作为采集层,把后端作为规则裁判层。

定位打卡不是"拿到经纬度就完事"。真正可用的移动考勤,需要把时间、地点、设备信号、离线补传、异常申诉全部考虑进去。这样系统才既能管住风险,也能解释清楚误差。