运行 当 iOS 设备靠近某个地图点时的操作
Run action when iOS device is near some map point
我的移动应用程序在 运行 显示地图上的一些地方(现在是 Google 地图)时使用用户的位置。
我想添加一个新功能 - 当设备靠近某个地图点或进入预定义区域时,后台应用程序应通知用户。
- 怎么办?有不同的方法吗?
- 从哪里开始?
- 如果我的点存储在服务器上怎么办 - 我应该先将它们保存在设备上吗?如果不能这样做,当应用程序不在内存中时可以添加新的地图点怎么办?
- 创建此类功能最具挑战性的是什么?
p.s。我知道 Ray 的地理围栏教程,但我想知道 - 是否有任何不同的方法以及此类功能的陷阱
首先,您必须在后台模式(您的目标->功能)中启用位置更新和远程通知,然后您必须在您的位置更新功能中编写一些代码来检测用户是否靠近某个位置示例:
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
if let userLocation = locations.first {
if location.coordinate.langtitude <= <some value> ||
location.coordinate.langtitude >= <some value> || ... {
runAction()
}
}
}
func runAction() {
//show local notification here
}
我的移动应用程序在 运行 显示地图上的一些地方(现在是 Google 地图)时使用用户的位置。
我想添加一个新功能 - 当设备靠近某个地图点或进入预定义区域时,后台应用程序应通知用户。
- 怎么办?有不同的方法吗?
- 从哪里开始?
- 如果我的点存储在服务器上怎么办 - 我应该先将它们保存在设备上吗?如果不能这样做,当应用程序不在内存中时可以添加新的地图点怎么办?
- 创建此类功能最具挑战性的是什么?
p.s。我知道 Ray 的地理围栏教程,但我想知道 - 是否有任何不同的方法以及此类功能的陷阱
首先,您必须在后台模式(您的目标->功能)中启用位置更新和远程通知,然后您必须在您的位置更新功能中编写一些代码来检测用户是否靠近某个位置示例:
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
if let userLocation = locations.first {
if location.coordinate.langtitude <= <some value> ||
location.coordinate.langtitude >= <some value> || ... {
runAction()
}
}
}
func runAction() {
//show local notification here
}