0
を表示します。 私はInfo.plistファイルに設定:は(表示されませんmyLocationButton</strong><strong>その後、使用する場合にのみ<strong>NSLocationAlwaysUsageDescription</strong>許可を)私は自分のアプリケーションがアクティブおよびバックグラウンドモードで場所を取るしたい唯一の場所許可警告
<key>NSLocationAlwaysUsageDescription</key>
<string>$(PRODUCT_NAME) location use</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>$(PRODUCT_NAME) location use</string>
<key>UIBackgroundModes</key>
をそしてMapViewController
self.locationManager.requestWhenInUseAuthorization()
self.locationManager.requestAlwaysAuthorization()
を追加しますが、アプリケーションの起動時に、最初の場所許可警告が表示され、アプリケーションが後に第2の許可警告が表示されます再オープン。
更新:
override func viewDidLoad() {
super.viewDidLoad()
...
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
viewMap.addObserver(self, forKeyPath: "myLocation", options: NSKeyValueObservingOptions.new, context: nil)
self.startLocationUpdates()
...
}
func startLocationUpdates() {
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
self.locationManager.activityType = CLActivityType.automotiveNavigation
self.locationManager.distanceFilter = distanceFilterMetr
self.locationManager.requestAlwaysAuthorization()
self.locationManager.startUpdatingLocation()
}
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
let myLocation: CLLocation = change?[NSKeyValueChangeKey.newKey] as! CLLocation
viewMap.camera = GMSCameraPosition.camera(withTarget: myLocation.coordinate, zoom: observeZoom)
mapRoute.coordinateLatitude = myLocation.coordinate.latitude
mapRoute.coordinateLongitude = myLocation.coordinate.longitude
viewMap.delegate = self
viewMap.settings.myLocationButton = true
viewMap.settings.compassButton = true
didFindMyLocation = true
}
「常に」承認を要求するだけです。これにより、アプリはフォアグラウンドとバックグラウンドで位置情報を使用できるようになります。 – Paulw11
@ Paulw11 NSLocationAlwaysUsageDescription権限のみを使用しmyLocationButtonが表示されない場合(場所の更新はボタンが表示されない)iOS 10.3 swift 3 – Roman
どうすればそのボタンを表示するかを決定していますか?フォアグラウンドとバックグラウンドの場所には常に認証が必要です。 – Paulw11