SuperAPI AI 工具集

react-native-background-location

前端与建站

查看项目

更新于 10-15 20:32

技能介绍

用途:在 React Native/Expo 中实现后台定位追踪,仅在产品价值确实需要时使用(如司机行程、主动导航);前台 UI 场景建议改用 react-native-realtime-location。

主要能力:基于 expo-location 处理权限与 watch,expo-task-manager 运行后台任务,配合配置插件、Info.plist、Android Manifest 声明用途;Android 使用前台服务(FGS)加常驻通知。裸项目用等价原生实现,策略相同。

使用方式:权限流程先在应用内说明原因,再请求 When-In-Use,必要时才请求 Always;被拒时降级为仅前台并提供跳转设置的入口,并在 AppState resume 时重新检查。后台任务典型流程为 startTrip() 确保权限后调用 startLocationUpdatesAsync(TASK, options),更新写入本地队列或批量 POST 后端;endTrip() 调用 stopLocationUpdatesAsync(TASK) 并刷新队列。可配置 accuracy、timeInterval/distanceInterval、showsBackgroundLocationIndicator(iOS)、foregroundService(Android)。上传需幂等,离线时退避重试,任务内不做重活,只入队。

适用场景:需要真实后台定位的行程类、导航类应用。

限制与合规:后台定位耗电且受严格监管。必须提供明确用途说明(iOS purpose strings、Play 声明),Android FGS 激活期间需常驻通知,行程结束、登出或取消后必须停止追踪,避免孤儿会话。精度与间隔取满足需求的最小值,避免全天候 BestForNavigation。上架需符合 App Store 与 Play 现行政策,隐私政策须说明激活时的持续采集。反模式包括:引导页就请求 Always、行程结束后继续追踪、忽略权限失败、无合法依据把坐标写入分析、只靠模拟器验证后台。完成标准:应用后台或被杀死时启停可靠、用途声明与 Android 通知正确、离线上传可恢复、权限被拒有降级、登出或行程结束后无残留追踪。