Flutter-geolocator: 場所はIOSエミュレーターでは機能しません

作成日 2020年06月04日  ·  12コメント  ·  ソース: Baseflow/flutter-geolocator

🐛バグレポート

予想される行動

位置を出力することを期待してください、これはコードです:
Geolocator geo = Geolocator();
位置位置=
geo.getCurrentPosition(desiredAccuracy:LocationAccuracy.high);を待ちます。
print(pos);

複製手順

これはAndroidエミュレーターで動作します-位置はコンソールに出力されます。
iOSエミュレーターでは機能せず、何も印刷されず、print(pos)の後に別のprintステートメントを追加すると、それも印刷されません。 私はそれが位置を決して得なかったと思うので、それは永遠に「待っている」のですか?

構成

AndroidStudioのiPhone11エミュレーター

バージョン: 1.x

プラットホーム:
:iphone:iOS

ios in progress bug

最も参考になるコメント

@LarryJingこの問題を再現することはできませんが、実際に場所の更新をシミュレートしましたか? iOSシミュレータでは、次のメニューオプションを使用して場所をアクティブに設定する必要があります。[機能]-> [場所]:

Screenshot 2020-06-04 at 13 21 49

全てのコメント12件

@LarryJingこの問題を再現することはできませんが、実際に場所の更新をシミュレートしましたか? iOSシミュレータでは、次のメニューオプションを使用して場所をアクティブに設定する必要があります。[機能]-> [場所]:

Screenshot 2020-06-04 at 13 21 49

はい、iOSシミュレーターのこのプラグインでもエラーが発生しました。 このログをコンソールで取得しています。
Screenshot 2020-06-04 at 6 42 49 PM

はい、iOSシミュレーターのこのプラグインでもエラーが発生しました。 このログをコンソールで取得しています。
Screenshot 2020-06-04 at 6 42 49 PM

私も同じエラーが発生しました。

`` `フラッタードクター
[✓]フラッター(チャンネル安定版、v1.17.2、Mac OS X 10.15.4 19E287、ロケールen-JP)

[✓] Androidツールチェーン-Androidデバイス用に開発(Android SDKバージョン29.0.3)

[✓] Xcode-iOSおよびmacOS用に開発(Xcode 11.5)
[✓] Android Studio(バージョン4.0)
[!] IntelliJ IDEA Ultimate Edition(バージョン2018.2.2)
✗Flutterプラグインがインストールされていません。 これにより、Flutter固有の機能が追加されます。
✗Dartプラグインがインストールされていません。 これにより、Dart固有の機能が追加されます。
[✓] VS Code(バージョン1.45.1)
[✓]接続されたデバイス(1つ利用可能)
`` `

バージョン: geolocator: 5.3.2

シミュレーター: iPhone 11 / Software Version 13.5

モジュールのバージョンが5.3.1変更されても、エラーは発生しません。

Screenshot 2020-06-04 at 8 15 06 PM
場所の更新権限を追加することで、この問題は解決します

私もこれに遭遇しています。 バックグラウンドでの場所をリクエストしたくありません。フォアグラウンドのみをリクエストします。 つまり、バックグラウンドモードを有効にする必要がないことを意味します。

これは確かに、誤って実行されたエラーです。 今日/明日後で修正します。 それまでは、バックグラウンドで位置情報の更新を有効にするか、5.3.1を使用してください

この問題を修正する修正プログラム(バージョン5.3.2 + 1)をリリースしました。 Backgroupの位置情報の更新を有効にするオプションを使用して設定できるようになりましたEnableBackgroundLocationUpdatesあなたの重要Info.plist (も参照README.mdをiOSのセクションで)。

これをデバッグするのを手伝ってくれたみんなに感謝します。 再び正常に動作するかどうか教えてください。

修正を確認し、問題を解決しました。

こんにちは、私はここでフラッター付きのジオロケーションサービスを使用しているのは初めてで、このプロジェクトは良さそうですが、現在の場所を取得しようとすると問題が発生し、アプリケーションが停止し、簡単なボタンを押すと閉じられます場所を取得するには...

これは、ダミークラスのonPressイベントハンドラーで使用している現在のコードです。

GeolocationStatus geolocationStatus  = await Geolocator().checkGeolocationPermissionStatus();

if (geolocationStatus == GeolocationStatus.granted) {
  Position position = await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
  print('position $position');
}

これは私がpubspec.yaml使用しているパッケージのバージョンです:

geolocator: ^5.3.2+2

そして、これらは私がinfo.plistファイルに追加したキーです:

  <!-- ...skipped by brevity -->
  <key>EnableBackgroundLocationUpdates</key>
  <true/>
  <key>NSLocationWhenInUseUsageDescription</key>
  <string>This app needs access to location when open.</string>
  <key>NSLocationAlwaysUsageDescription</key>
  <string>This app needs access to location when in the background.</string>
  <key>NSLocationAlwaysAndWhenInUsageDescription</key>
  <string>Always And In Use Permission</string>
  <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
  <string>This app needs access to location when open and in the background.</string>
  <!-- skipped by brevity... -->

@mvanbeusekom私が間違っていることについて何か考えはありますか?

@mvanbeusekom 、リンクが機能していないようです。それ以外の場合、この問題については、 EnableBackgroundLocationUpdatesに関する参照が見つかりません。 ところで、このパッケージが大好きです。

@markbeij 、言及されたリンクが5.3.1リリースの一部であったことを修正してください。 現在、フェデレーションプラグインアーキテクチャをサポートするようにフォルダ構造が更新された、大幅に改善されたバージョン6.1.6を使用しています(これにより、複数のプラットフォームのサポートが容易になります)。

README.mdへの現在のリンクは次のとおりです: https

バックグラウンドモードに関するセクションは次のとおりです。

アプリがバックグラウンドにあるときに更新を受信する場合は、XCodeプロジェクトにバックグラウンドモード機能を追加して([プロジェクト]> [署名と機能]> [+機能]ボタン)、[場所の更新]を選択する必要もあります。 これに注意してください。アプリをAppStoreに送信するときに、アプリがこれを必要とする理由をAppleに詳細に説明する必要があります。 Appleが説明に満足していない場合、アプリは拒否されます。

これにより、基本的にEnableBackgroundLocationUpdatesパラメータがInfo.plistに追加されます。 ジオロケーターはバックグラウンドでの実行をサポートしておらず、バックグラウンドでの実行中に更新を受信する方法を提供していないことに注意してください。 現時点では、 EnableBackgroundLocationUpdatesが実行するのは、アプリがバックグラウンドにある間(他の方法で呼び出されたり実行されたりすることはありません)、プラットフォーム上の位置情報の更新をリッスンし続けるようにプラットフォームに指示することだけです。

このページは役に立ちましたか?
0 / 5 - 0 評価