Ich mache derzeit eine Hybrid-App mit ionic / cordova. Die App benötigt Funktionen, bei denen das Backend alle 1 Minute mit dem Standort gepingt wird und die Backend-API antwortet, wenn etwas Interessantes in der Nähe ist. Wenn die Antwort ja lautet, wird die App eine lokale Benachrichtigung in die Warteschlange stellen, die den Benutzer hoffentlich dazu bringt, die App zu öffnen. Diese Funktion wird benötigt, wenn sich die App im Hintergrundmodus befindet und auch wenn das Telefon gesperrt ist. Die App muss in der Lage sein, sowohl im App Store, Google Play und Windows Phone installiert werden.
Ich verwende derzeit eine Kombination dieser drei Plugins:
Ссылка - für den Standort Ссылка - für den bg-Modus Ссылка - für lokale Benachrichtigungen
Dies funktioniert derzeit bei Android, wenn das Gerät nicht gesperrt ist (also im Vordergrund- und Hintergrundmodus), aber wenn das Gerät gesperrt ist, kann es die GPS-Koordinaten nicht abrufen.
Mein Code sieht momentan so aus:
%Vor%Also ... meine Fragen sind:
1) Wie funktioniert die Lösung, wenn mein Gerät gesperrt ist (die getCurrentPosition wird auch aufgerufen, wenn das Gerät gesperrt ist, aber das Zeitlimit zurückgibt)?
2) Ist es möglich, diese Lösung unter iOS zu verwenden?
3) Wird eine App auf diese Weise in Google Play und App Store genehmigt?
4) Wenn das Projekt zum Scheitern verurteilt ist, was sind meine Alternativen?
Ich brauche wirklich Hilfe hier!
Also habe ich derzeit eine App, die alle oben aufgeführten Probleme anspricht und hier ist das Plugin, das ich verwende:
Das Plugin verwendet watchPosition () getCurrentPosition () nicht, da es zu lange dauert, das Gerät ständig anpingen zu lassen und mehr Akkuleistung zu verbrauchen.
Dies wird definitiv für Android & amp funktionieren; iOS aber IMHO funktioniert es besser für Android als das letztere, was die Präzision und die Keep-Alive-Funktionalität angeht.
Ich habe es in Google Play kein Problem, Apple erlaubt dieses Plugin, es gibt eine Reihe von Apps, die dieses Plugin im Apple Store nutzen, aber Apple wird es wahrscheinlich zunächst ablehnen und die Apps vor der Hintergrundnutzung fragen, wirst du dann muss appellieren, was die App im Hintergrund macht und sicherstellen, dass es nicht unbegrenzt läuft (das war meine Erfahrung).
a. Sie werden auch sicherstellen wollen, dass Sie den Apple Peeps darauf hinweisen, dass es für den Benutzer eine Möglichkeit gibt, das Hintergrund-Geolocation-Tracking auszuschalten. Ich gehe davon aus, dass es da ist? Das ist ihr Hauptproblem bei der Verwendung des Plugins.
Viel Glück.
Dieses Plugin hat eine großartige Anleitung, wie man einen Meteorserver und Cordova benutzt, um das zu tun, was Sie brauchen:
zeroasterisk / meteor-cordova-geolocation-background
Es konfiguriert sich automatisch mit Android und iOS. Für Windows Phone weiß ich nicht.
Ich habe das gleiche Problem mit den gleichen Plugins, die Sie verwendet haben, gefunden. Es stellt sich heraus, dass es sich um ein Problem mit Geräteberechtigungen handelt .
Das cordova-plugin-geolocation-Plugin hat nicht die Berechtigung, im Hintergrund zu laufen, und vor allem hat es nicht die Berechtigung, GPS im Hintergrund zu verfolgen . Während das cordova-plugin-background-mode-Plugin es erlaubt, Code im Hintergrund auszuführen, können Sie im Hintergrund keine GPS-Koordinaten erhalten.
Die Lösung besteht darin, ein Plugin hinzuzufügen, das das Abrufen der Standortdaten unterstützt, während die App im Hintergrund läuft . Es gibt mehrere Plugins, die dies unterstützen, einschließlich der mauron85 / cordova-plugin-background-geolocation Plugin (wie zuvor vorgeschlagen). Eine Alternative ist das cordova-custom-config Plugin, mit dem Sie Ihre eigenen benutzerdefinierten Berechtigungen festlegen können. Wirklich können Sie jedes Plugin hinzufügen, solange es Hintergrundortungsdienste unterstützt . Kein zusätzlicher Code ist erforderlich.
Sie können überprüfen, ob Sie über die richtigen Berechtigungen verfügen, indem Sie die App-Einstellungen (in iOS) öffnen und bestätigen, dass die Option "Immer" verfügbar ist.
Tags und Links javascript cordova geolocation ionic-framework hybrid-mobile-app