在这篇文章的时候,我相信没有可用于本地反应的地理围栏模块,所以我想实施另一种穷人的策略 . 我发现反应原生的地理定位模块,但官方文件不清楚:
1)Geolocation模块是否在后台运行并自动获取当前用户坐标(即使应用程序在后台)?如果是,这些是存储在变量还是状态?
2)如果(1)为真,我怎样才能检测到状态的变化?因为一旦我检测到状态的变化(即用户的位置),我想将这个新位置推送到远程服务器并将其存储在数据库中 . 另一方面,我不想存储用户正在移动的每一寸!
这个策略有意义吗?我担心的是电池消耗当然......
1 回答
1)您需要在xcode中启用此功能
然后将您从'navigator.geolocation.getCurrentPosition'回调中获得的位置保存在应用中的某个位置,例如在您的AsyncStorage中
2)只有在位置发生变化时才会调用回调 . 因此,您无需显式检测任何位置更改 .