Как отследить местоположение пользователя в фоновом режиме Swift - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь отследить местоположение пользователя в фоновом режиме, которое я пытаюсь использовать, когда у нас всегда и без него, но каждый раз, когда я минимизирую приложение, значок местоположения исчезает. Я читал в уроке, он должен показывать синюю полосу, но яя не вижу эту полосу. Я также проверяю фоновый режим для обновления местоположения

  map.showsUserLocation = true
    locationManager.delegate = self
    locationManager.desiredAccuracy = kCLLocationAccuracyBest
    locationManager.requestWhenInUseAuthorization()
    locationManager.requestAlwaysAuthorization()
    locationManager.startUpdatingLocation()
    // Do any additional setup after loading the view, typically from a nib.
    alwaysAuthorization()
}

func alwaysAuthorization(){
    if CLLocationManager.locationServicesEnabled() && CLLocationManager.authorizationStatus() == .authorizedWhenInUse {
        locationManager.requestAlwaysAuthorization()
    }
}


func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    let location = locations.last
    let region  = MKCoordinateRegion(center: CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude), span: MKCoordinateSpan (latitudeDelta: 0.2, longitudeDelta: 0.2))
    self.map.region = region
    print("location \(location!.coordinate.latitude) and \(location!.coordinate.longitude)")
}

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

Ваш вопрос не ясен.У вас есть проблемы с запуском вашего приложения в фоновом режиме?Или вы просто ожидаете, что синяя полоса указывает, что ваше приложение отслеживает местоположение в фоновом режиме?

Для последнего вам нужно включить индикатор местоположения фона

locationManager.showsBackgroundLocationIndicator = true
0 голосов
/ 18 декабря 2018

это то, что я искал

        locationManager.allowsBackgroundLocationUpdates = true
0 голосов
/ 17 декабря 2018

Вы можете использовать метод startMonitoringSignificantLocationChanges () вместо startUpdatingLocation ()

На основе документов:

Приложения могут ожидать уведомления, как только устройство перемещается на 500 метров или более отего предыдущее уведомление.Не следует ожидать уведомлений чаще, чем раз в пять минут.Если устройство способно извлекать данные из сети, менеджер местоположения с большей вероятностью будет своевременно доставлять уведомления.

Я использовал этот метод один раз и протестировал его.Хорошо работает с сотовой связью и Wi-Fi.

...