2013-03-20 17 views
8

Ich bin auf der Suche nach einer Touristenanwendung für eine Stadt, in der sich der Benutzer, wenn er sich in der Nähe eines "Ortes von Interesse" befindet, auf sein Gerät setzen kann.Verwenden von standortbasierten Push-Benachrichtigungen unter iOS

Zum Beispiel würde ich 100 POIs in meiner App hinzufügen und 100 Nachrichten für jeden POI anzeigen, wenn der Benutzer in Reichweite ist, z. "Sie sind in der Nähe der Kathedrale von .."

Ist dieses Szenario möglich? Ist es möglich, die Benutzerposition z.B. alle 10 Minuten, auch wenn die Anwendung getötet wird, und wenn in Reichweite einen lokalen Push auslösen? Wie viel Batterie würde es abtropfen lassen? Wenn der Benutzer das GPS schließt, würde es versuchen, 3G/WiFi-Signal zu verwenden, um die Position zu erhalten?

Wenn ja, könntest du mir den richtigen Weg weisen, was ich zu diesem Thema lesen sollte, vielleicht ein paar Tutorials und Artikel?

Antwort

2

Ja, das ist möglich. Sie müssen einige "Orte" (Koordinaten oder Adressen) lokal auf der App gespeichert haben. Die Nähe zu einem gespeicherten "Ort" kann durch Reverse geocoder überprüft werden.

prüfen diese Wonderful SO Question, sehr ähnlich wie bei Ihnen

+1

Aber kann dies überprüft werden, wenn die Anwendung getötet wird (nicht im Hintergrund). Wie viel Batterie würde es abtropfen lassen? Wenn der Benutzer das GPS schließt, würde es versuchen, 3G/WiFi-Signal zu verwenden, um die Position zu erhalten? –

0

Wenn die App getötet wird, was genau die Lage Updates werden empfangen würde?

Wenn Sie jedoch im Hintergrund sind, können Sie Standortaktualisierungen basierend auf der Nähe und der Zeit einrichten.

prüfen How do I get a background location update every n minutes in my iOS application?

Wie für GPS vs. 3g/wifi, hat der Benutzer die Möglichkeit, die Ortungsdienste für eine App entweder zulassen oder nicht. iOS wird dann behandeln, ob GPS oder Zellsignal verwendet wird, um die Position zu bestimmen. Lesen Sie mehr über den Standortdienst mit signifikanter Änderung here. Wenn Sie den Service für signifikante Änderungen verwenden, wird für die Standortbestimmung ein größerer Standort verwendet als für die GPS-Sperre und umgekehrt. Sehen Sie sich auch die Standortgenauigkeit an, um mehr über die Einsparung von Batterien zu erfahren.

+0

Aber wie baut man eine Alarm-App? Selbst wenn die App getötet wird, wenn die Zeit die vordefinierte Zeit ist, wird der lokale Push richtig ausgelöst? Ich dachte, du könntest sowas auch mit dem GPS machen. –

5

das ist in der Tat möglich. Sie könnten die oben erwähnte Technik verwenden, die in this Post beschrieben wird. Sie können dies erweitern, indem Sie CLLocationManager :: startMonitoringSignificantLocationChanges verwenden, um den Prozess des Abhörens von Orten neu zu starten, nachdem die App beendet wurde. Abhängig von Ihren Genauigkeitsanforderungen gibt es viele andere Optimierungen, die hinsichtlich der Batterielebensdauer durchgeführt werden können, z. B. häufiger prüfen, wenn ein Benutzer beschleunigt usw.

Ich habe eine library entwickelt, die diese Details für Sie behandelt (für Android und iOS). Der Download enthält eine Beispielanwendung, die zeigt, wie Sie sie verwenden können. Fühlen Sie sich frei, es auszuprobieren.

2

Dies könnte für Ihre Frage zu spät sein, aber für alle anderen, die es brauchen. GeoFencing ist eine gute Option.

Hier ist ein Video zu erklären, was Geofencing ist http://academy.pulsatehq.com/7-things-about-geofencing

Und wenn Sie Ionic-Plattform verwenden, hier ist der Link zu dem Plugin https://github.com/cowbell/cordova-plugin-geofence

GeoFencing lösen genau Ihr Problem. Erstellen Sie einfach eine Reihe von Geofence, die sich an diesen touristischen Orten befindet, und wenn der Benutzer innerhalb eines bestimmten Radius von diesen Orten eintritt, erhält der Benutzer eine Benachrichtigung.

Viel Glück