【问题标题】:Location Update while app is terminated应用程序终止时的位置更新
【发布时间】:2017-09-08 07:44:04
【问题描述】:

我想在应用终止时获取用户位置更新。

我尝试了什么: 在 AppDelegate 中:

var locationManger: CLLocationManager!

在 applicationDidFinishLaunching 中

setupLocationManager()

还有在 AppDelegate 中:

@nonobjc func applicationWillTerminate(application: UIApplication) {
        locationManger.startMonitoringSignificantLocationChanges()
    }
func setupLocationManager(){
        locationManger = CLLocationManager()
        locationManger.delegate = self
        locationManger.requestAlwaysAuthorization()
        locationManger.desiredAccuracy = kCLLocationAccuracyHundredMeters
    }

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        if UIApplication.shared.applicationState == .inactive{
            let notification = UNMutableNotificationContent()
            notification.title = "Location Update"
            notification.body = "updated in background"

            let notificationTrigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
            let request = UNNotificationRequest(identifier: "locationUpdate", content: notification, trigger: notificationTrigger)

            UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
        }

    }

但我没有收到推送通知... 有任何想法吗? 参考这个帖子:IOS Getting location updates when app terminated without using significantChange应该是可以的

【问题讨论】:

  • 您是否开启了后台位置获取功能?
  • 是的,如果您的意思是在项目设置 -> 功能 -> 后台模式位置更新
  • @markus-g :根据您共享的链接,如果应用程序终止,似乎可以获得后台位置更新。请拒绝接受的答案,因为它是错误的

标签: ios swift ios10


【解决方案1】:

您是否尝试过在此处启用后台提取?

【讨论】:

  • 在哪里可以找到这个窗口?
  • 这是编辑方案。所以,在 Xcode 的左上角你会看到 target,从那里你可以从下拉列表中选择编辑方案
猜你喜欢
  • 1970-01-01
  • 2014-09-06
  • 2016-04-07
  • 2017-07-30
  • 2023-03-11
  • 1970-01-01
  • 2016-04-04
  • 2015-05-01
相关资源
最近更新 更多