iOSデバイスの現在地を取得するにはどうすればよいですか?SwiftのCLLocationManagerを使用して現在地を取得する
アップルは場所の取得方法や最新の投稿を見つけることができないという変更を加えたようです。私は以下のこの質問に自分自身で答えました:
iOSデバイスの現在地を取得するにはどうすればよいですか?SwiftのCLLocationManagerを使用して現在地を取得する
アップルは場所の取得方法や最新の投稿を見つけることができないという変更を加えたようです。私は以下のこの質問に自分自身で答えました:
現在の場所を取得するための最新の解決策を見つけることができませんでした。ここでは、あなたのアプリにしなければならないものだhttps://github.com/robovm/apple-ios-samples/tree/master/PotLocCoreLocationwithiPhoneandAppleWatch
:
私のソースはPotLocCoreLocationwithiPhoneandAppleWatch
と呼ばれる位置追跡やスマートウォッチのAppleのサンプルコードです。 Xcodeでプロジェクト設定でhttps://gist.github.com/JonMercer/75b3f45cda16ee5d1e0955b2492f66dd
capabilities
タブをクリックします(それはあなたが入れgeneral
タブの横にあるタブです:ステップ2-6からのすべてが、この主旨であること 注意あなたのバンドル識別子)。その後、Background Mode
を有効にしてLocation updates
を有効にします。 @Robのおかげで編集:また、NSLocationWhenInUseUsageDescription
をplistに追加してください。値は、あなたのビューコントローラ内部
が好きで何もすることができ、これらの二つの機能
/**
Increases that location count by the number of locations received by the
manager. Updates the batch count with the added locations.
*/
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
//use the "locations" variable here
}
/// Log any errors to the console.
func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
print("Error occured: \(error.localizedDescription).")
}
がviewDidLoad()
セットにlet manager = CLLocationManager()
変数
CLLocationManagerDelegate
class YourClass: UIViewController, CLLocationManagerDelegate {
を拡張次のようになります。manager.requestWhenInUseAuthorization()
,manager.allowsBackgroundLocationUpdates = true
および追跡を停止するためには
manager.stopUpdatingLocation()
とmanager.allowsBackgroundLocationUpdates = false
私は 'requestWhenInUseAuthorization'が機能するために必要なのplist設定に関する何かを追加することをお勧めかもしれません。また、バックグラウンドの場所の更新に関する上記のすべては、アプリがバックグラウンドの間に標準的なロケーションサービスを引き続き使用する真のナビゲーションアプリを作成する場合にのみ適用されます。アプリの実行中に位置情報サービスを行っている場合は、すべてのバックグラウンド情報は必要ありません。実際、バックグラウンドサービスが必要な真のナビゲーションアプリでないと、アプリが拒否される可能性があります。 – Rob
ありがとうございました。あなたの編集内容を回答に追加しました – jonmecer