アプリケーションは、位置データをバックエンドに投稿する必要があります。位置情報のアクセス許可をalways
に設定し、pausesLocationUpdatesAutomatically
をfalse
に設定しましCLLocationManager
た。アプリケーションがバックグラウンドにある場合や電話を再起動した後でも、電話の場所を追跡し続ける必要があります。
アプリケーションがバックグラウンドモードのときに動作させることができます。ただし、電話を再起動すると機能しなくなります。
これどうやってするの?
ちなみに、私は知っています
これは、Appleのドキュメントによって十分に文書化されています。ロケーションマネージャーが「startMonitoringSignificantLocationChanges」で起動されている場合にのみ、取得できます。
したがって、たとえば:
1)アプリデリゲートでシングルトンGeoLocationManager.shared.locationManagerを開始するため、再起動すると実行されます。
2)コールバック:
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
{
位置を更新する
クラッシュした場合は再入可能になります。私はあなたがすでにilplistを設定したと思います:
<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>
注:ios9は必須であるため、プライバシーのためのコードを追加してください。
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
...
}
そしてplistで:
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Needed to track on maps even if background</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Needed to track on maps even if background</string>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加