即使手机被锁定,在react-native中是否可以执行后台任务来监控GPS位置(而不是在后台运行整个应用程序)?我想在手机处于某个位置时在屏幕上显示一些信息(通知)。
我需要在我的研究中声明一个项目的主题,但我不知道是否可以实现这个功能。
发布于 2019-03-12 00:12:56
当然是这样的。如果您只有一个给定的位置(或少于20个位置),最好使用CoreLocation的geofencing API!
您可以像这样设置一个地域:
if CLLocationManager.isMonitoringAvailable(for: CLCircularRegion.self) {
// Register the region.
let region = CLCircularRegion(
center: center,
radius: maxDistance, identifier: identifier
)
region.notifyOnEntry = true
locationManager.startMonitoring(for: region)
}(假设您已经请求并检查了用户的位置权限)!
无论何时发生区域监控事件,您的应用程序都将在后台启动,因此您必须确保设置一个新的CLLocationManager,并为其提供一个代理来接收application(_application:didFinishLaunchingWithOptions)函数中的更新!
然后,可以使用委托回调来触发本地通知。
这里有一个小小的警告,如果用户为你的应用程序禁用了后台应用程序刷新,这将不起作用!
幸运的是,已经有一个react-native库允许您设置这些区域:https://github.com/martijndeh/react-native-region-monitor。不幸的是,我确实认为它会在收到通知时完全启动你的JavaScript应用程序(当然是在后台),但这不是一个太大的问题。
也可能有关于如何在安卓上实现这一点的GitHub的信息!
https://stackoverflow.com/questions/55105452
复制相似问题