即使手机被锁定,也可以通过监视GPS位置执行背景任务(不在背景中运行整个应用程序)吗?我想在手机处于某种位置时在屏幕上显示一些信息(通知)。
我需要在我的研究中声明项目的主题,但是我不知道是否可以实施此功能。
最肯定的是...如果您只有一个给定的位置(或少于20个位置),那么最好使用的是CoreLocation的地理位置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)
功能中的更新!
然后,您可以使用委托回调来触发本地通知。
这里有一个小警告,如果用户已禁用您的应用程序的背景应用程序刷新!
幸运的是,已经有一个反应库,可以让您设置以下区域:https://github.com/martijndeh/reaeact-native-region-monitor。不幸的是,我确实认为,当通知通过时,它将完全启动您的JavaScript应用程序(当然在背景中),但这并不是太大的问题。
也可能有有关如何在Android上实现此功能的GitHub的信息!