Flutter-geolocator: Der Speicherort funktioniert auf dem IOS-Emulator nicht

Erstellt am 4. Juni 2020  ·  12Kommentare  ·  Quelle: Baseflow/flutter-geolocator

🐛 Fehlerbericht

Erwartetes Verhalten

Erwarten Sie, die Position zu drucken, dies ist der Code:
Geolocator geo = Geolocator ();
Position pos =
warte auf geo.getCurrentPosition (gewünschte Genauigkeit: LocationAccuracy.high);
print (pos);

Reproduktionsschritte

Es funktioniert auf der Android-Emulator-Position, die auf der Konsole gedruckt wird.
Funktioniert nicht mit dem iOS-Emulator, es wird nichts gedruckt und wenn ich nach dem Drucken (pos) eine weitere Druckanweisung hinzufüge, wird auch nicht gedruckt. Ich vermute, es hat nie die Position bekommen, also "wartet" es für immer?

Aufbau

iPhone 11 Emulator auf Android Studio

Version: 1.x.

Plattform:
: iphone: iOS

ios in progress bug

Hilfreichster Kommentar

@ LarryJing Ich kann dieses Problem nicht reproduzieren.

Screenshot 2020-06-04 at 13 21 49

Alle 12 Kommentare

@ LarryJing Ich kann dieses Problem nicht reproduzieren.

Screenshot 2020-06-04 at 13 21 49

Ja, ich habe auch einen Fehler bei diesem Plugin im iOS Simulator. Ich bekomme dieses Log auf der Konsole.
Screenshot 2020-06-04 at 6 42 49 PM

Ja, ich habe auch einen Fehler bei diesem Plugin im iOS Simulator. Ich bekomme dieses Log auf der Konsole.
Screenshot 2020-06-04 at 6 42 49 PM

Ich habe auch den gleichen Fehler.

`` `flattern Doktor
[✓] Flattern (Channel Stable, Version 1.17.2, unter Mac OS X 10.15.4 19E287, Gebietsschema en-JP)

[✓] Android-Toolchain - Entwickeln für Android-Geräte (Android SDK Version 29.0.3)

[✓] Xcode - Entwicklung für iOS und MacOS (Xcode 11.5)
[✓] Android Studio (Version 4.0)
[!] IntelliJ IDEA Ultimate Edition (Version 2018.2.2)
✗ Flatter Plugin nicht installiert; Dies fügt Flutter-spezifische Funktionen hinzu.
✗ Dart Plugin nicht installiert; Dies fügt Dart-spezifische Funktionen hinzu.
[✓] VS-Code (Version 1.45.1)
[✓] Angeschlossenes Gerät (1 verfügbar)
`` `

Version: geolocator: 5.3.2

Simulator: iPhone 11 / Software Version 13.5

Der Fehler tritt nicht auf, wenn die Modulversion auf 5.3.1 geändert wird.

Screenshot 2020-06-04 at 8 15 06 PM
Durch Hinzufügen der Berechtigung zum Aktualisieren des Standorts wird dieses Problem behoben

Ich stoße auch darauf. Ich möchte keinen Ort im Hintergrund anfordern, sondern nur den Vordergrund. Ich würde hoffen, dass dies bedeutet, dass ich keinen Hintergrundmodus aktivieren muss.

Dies ist in der Tat ein Fehler, der versehentlich aufgetreten ist. Ich werde es später heute / morgen korrigieren. Bis dahin aktivieren Sie entweder Standortaktualisierungen im Hintergrund oder bleiben Sie bei 5.3.1

Ich habe gerade einen Hotfix (Version 5.3.2 + 1) veröffentlicht, der dieses Problem beheben soll. Die Option zum Aktivieren von Backgroup-Standortaktualisierungen kann jetzt mit dem Schlüssel EnableBackgroundLocationUpdates in Ihrem Info.plist konfiguriert werden (siehe auch README.md im Abschnitt iOS).

Vielen Dank an alle, die beim Debuggen geholfen haben. Bitte lassen Sie mich wissen, ob es wieder richtig funktioniert.

Bestätigter Fix, der das Problem schließt.

Hallo, ich bin neu hier und verwende Geolokalisierungsdienste mit Flattern. Ich habe dieses Projekt gefunden. Es sieht gut aus, aber ich habe ein Problem, wenn ich versuche, den aktuellen Standort abzurufen. Die Anwendung wird gestoppt und nach Drücken einer einfachen Taste geschlossen um den Ort zu bekommen ...

Dies ist der aktuelle Code, den ich im onPress-Ereignishandler in einer Dummy-Klasse verwende:

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

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

und dies ist die Version des Pakets, das ich in pubspec.yaml :

geolocator: ^5.3.2+2

Und dies sind die Schlüssel, die ich der Datei info.plist hinzugefügt habe:

  <!-- ...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 Irgendeine Idee, was denkst du, mache ich falsch?

@mvanbeusekom , der Link scheint nicht zu funktionieren und EnableBackgroundLocationUpdates . Ich liebe dieses Paket übrigens ..

@markbeij , korrigieren Sie, dass der erwähnte Link Teil der Version 5.3.1 war. Derzeit befindet sich eine stark verbesserte Version 6.1.6 mit einer aktualisierten Ordnerstruktur zur Unterstützung der Verbund-Plugin-Architektur (die die Unterstützung mehrerer Plattformen erleichtert).

Der aktuelle Link zu README.md lautet: https://github.com/Baseflow/flutter-geolocator/blob/master/README.md

Der Abschnitt zum Hintergrundmodus lautet:

Wenn Sie Updates erhalten möchten, während sich Ihre App im Hintergrund befindet, müssen Sie Ihrem XCode-Projekt auch die Funktion "Hintergrundmodi" hinzufügen (Projekt> Signieren und Funktionen> "+ Funktion") und Standortaktualisierungen auswählen. Seien Sie vorsichtig damit. Sie müssen Apple ausführlich erklären, warum Ihre App dies benötigt, wenn Sie Ihre App an den AppStore senden. Wenn Apple mit der Erklärung nicht zufrieden ist, wird Ihre App abgelehnt.

Dadurch wird der Parameter EnableBackgroundLocationUpdates zu Ihrem Info.plist hinzugefügt. Beachten Sie, dass der Geolocator das Ausführen im Hintergrund nicht unterstützt und keine Möglichkeit bietet, Updates zu erhalten, während er im Hintergrund ausgeführt wird. Im Moment ist das einzige, was EnableBackgroundLocationUpdates tun wird, der Plattform anzuweisen, weiterhin Standortaktualisierungen auf der Plattform zu hören, während sich die App im Hintergrund befindet (nichts wird aufgerufen oder anderweitig ausgeführt).

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen