Bouw een Oefening Tracking App Geolocatie & Tracking

Wil je leren hoe je een complete mobiele applicatie schrijft met behulp van PhoneGap, maar weet je niet hoe je moet beginnen? Volg deze tweedelige zelfstudiereeks en ik zal je laten zien hoe je een mobiele app kunt bouwen die je oefeningsroute volgt, registreert en in kaart brengt met behulp van de GPS-functies op je telefoon!


Projectoverzicht

Dit gedeelte is een breed overzicht van ExerciseTracker, de applicatie die we gaan bouwen.

De startpagina controleert of de telefoon een actieve netwerkverbinding heeft (we hebben dit nodig om te laden
Google Maps om de route uit te zetten). Het heeft ook twee knoppen die handig zijn om de app te testen, maar die later eenvoudig kunnen worden verwijderd, indien gewenst.

De pagina Tracktraining heeft een enkel tekstinvoerveld waarmee de gebruiker een naam of ID voor zijn training kan invoeren. Wanneer ze op "Beginnen met volgen" klikken, begint de telefoon hun GPS-locatie te registreren. Wanneer ze klikken op "Tracking stoppen", worden de GPS-gegevens opgeslagen op de telefoon.

Op de pagina Geschiedenis worden alle bijgehouden trainingen weergegeven die de gebruiker heeft voltooid.

De Track Info-pagina geeft trainingspecifieke informatie. Het toont de totale afgelegde afstand in kilometers en de totale tijd die nodig is voor de training, en geeft vervolgens de route weer die de gebruiker op een Google Map heeft afgelegd.


Technologieën geïmplementeerd

Onze applicatie, ExerciseTracker, zal draaien op het mobiele platform van PhoneGap. Met PhoneGap kunnen we eenvoudig mobiele applicaties maken met behulp van vertrouwde webtechnologieën zoals HTML 5, CSS en JavaScript, en deze vervolgens naadloos implementeren als native apps op platforms zoals iOS, Android en Windows Phone.

De trainings-tracker-app die we gaan bouwen, maakt gebruik van de volgende technologieën:

  • PhoneGap Location API
  • JQuery Mobile
  • Google Maps JavaScript API
  • HTML5 en lokale opslag

In deze tweedelige serie zelfstudies leer je hoe je het bovenstaande kunt gebruiken om een ​​complete PhoneGap-toepassing te maken.


Beginnen met ontwikkeling

PhoneGap instellen

Het eerste dat we moeten doen, is het opzetten van de ontwikkelomgeving van PhoneGap. PhoneGap biedt een geweldige startpagina die u helpt bij het instellen van de ontwikkelomgeving van PhoneGap voor elk van de verschillende mobiele platforms. Kies het platform dat u wilt ontwikkelen en volg de instructies om de standaard PhoneGap-toepassing in te stellen. In deze zelfstudie ontwikkel ik een Android-installatie (Android 4.0.3 API v15), maar de code in deze handleiding moet op alle platforms werken.

Je zou nu een minimum moeten hebben index.html bestand dat u kunt bekijken op uw apparaatemulator.

Afhankelijkheden en scripts

Laten we beginnen met de ontwikkeling van onze app door alle benodigde JavaScript- en CSS-bestanden te downloaden en te integreren.

  • jquery-1.7.2.min.js
  • jquery.mobile-1.1.0.zip
    • jquery.mobile.1.1.0.min.css
    • jquery.mobile-1.1.0.min.js
    • afbeeldingen/
  • json2.js
  • exercisetracker.js (maak dit aan, onze JS zal hier naartoe gaan)

Download en kopieer elk van deze bestanden naar dezelfde map als de index.html en cordova-1.7.0.js bestanden.

In dit stadium ziet de directorystructuur van mijn Android-app er als volgt uit:

Uw mappenstructuur zou er als volgt uit moeten zien.

Google Maps API Key

Om ervoor te zorgen dat onze applicatie Google Maps gebruikt, moeten we over een API-sleutel beschikken. API-sleutels zijn gratis om maximaal 25.000 vragen per dag te ontvangen en te ondersteunen. Volg de gids die Google geeft om uw API-sleutel te registreren. Noteer het, we zullen het in de volgende stap nodig hebben!

Skeletindex.html

Laten we de eerste versie van schrijven index.html. Dit omvat alle JavaScript- en CSS-afhankelijkheden die ExerciseTracker zal hebben.

    ExerciseTracker          

Hallo Wereld

Zorg ervoor dat je het vervangt YOUR_API_KEY_HERE met uw daadwerkelijke Google Maps API Key.

U zou dit in uw emulator moeten kunnen lanceren en geen fouten ontvangen.


De startpagina maken

Laten we nu de startpagina maken. Met jQueryMobile kunnen we onze gebruikersinterface definiëren met behulp van standaard HTML-tags. Pagina's in onze app zijn

elementen, knoppen zijn

jQueryMobile parseert en interpreteert de betekenissen van de verschillende data-rol, data-overgang, en data-icon attributen en past automatisch de juiste CSS-opmaak op hen toe.


Controleren op netwerktoegang

We moeten nu controleren of de gebruiker toegang heeft tot internet. Als dat niet het geval is, wordt de Google Map niet geladen en is de app cripppled.

We beginnen met te luisteren naar de deviceready gebeurtenis die wordt afgevuurd wanneer PhoneGap klaar is met laden. Vervolgens gebruiken we de PhoneGap Connection API om te vragen of we toegang hebben tot internet. Als we geen toegang tot internet hebben, moeten we de knop op de startpagina bijwerken. We werken de tekst bij, stellen een nieuw pictogram in en bellen het knop ( 'refresh') methode, waardoor jQuery Mobile wordt gedwongen de knop opnieuw te tekenen.

 document.addEventListener ("deviceready", function () if (navigator.network.connection.type == Connection.NONE) $ ("# home_network_button"). text ('Geen internettoegang') .attr ("gegevens- icon "," delete ") .button ('refresh'););

De tracktrainingpagina bouwen

Trainingspagina bijhouden

Nadat de startpagina is voltooid, kunnen we nu beginnen met het maken van de Track Workout-pagina. De HTML / CSS-code voor beide pagina's is vergelijkbaar, echter in de data-role = "content" sectie van de Track Workout-pagina, definiëren we een tekstveld (voor de gebruiker om een ​​naam in te voeren voor hun training) en twee knoppen die de training starten en stoppen.

 

Trainingen volgen

  • Huis
  • Trainingen volgen
  • Geschiedenis

De bewegingen van de gebruiker volgen

We kunnen de locatie van de gebruiker controleren met behulp van de PhoneGap Geolocation-API. Het biedt twee hoofdfuncties: getCurrentPosition () en watchPosition (). De getCurrentPosition () functie zou worden gebruikt wanneer u een eenmalige oplossing op de locatie van de gebruiker wilt krijgen (zoals het opslaan van de locatie van de gebruiker wanneer deze een foto maakt). Onze app zal gebruiken watchPosition () om dit te doen, die regelmatig de GPS-functie van de telefoon peilt en constante updates ontvangt op de locatie van de gebruiker.

De watchPosition () accepteert drie argumenten. De eerste is een functie die wordt aangeroepen telkens wanneer de telefoon met succes een GPS-locatie retourneert, de tweede is een functie die wordt aangeroepen wanneer er een GPS-fout is en de derde een object van instellingen.

Telkens wanneer de functie "succes" wordt aangeroepen, wordt een Positie-object doorgegeven. Dit bevat informatie over de GPS-positie van de gebruiker, zoals de breedtegraad, lengtegraad en hoogte. Wanneer de "succes" -functie wordt aangeroepen in ExerciseTracker, voegen we het laatste Positie-object bij de array tracking_data.

 var track_id = "; // Naam / ID van de oefening var watch_id = null; // ID van de geolocatie var tracking_data = []; // Serie met GPS-positieobjecten $ (" # startTracking_start "). live ('klik') , function () // Begin met het volgen van de gebruiker watch_id = navigator.geolocation.watchPosition (// Succesfunctie (positie) tracking_data.push (positie);, // Foutfunctie (fout) console.log (fout) ;, // Instellingen frequentie: 3000, enableHighAccuracy: true); // Ruim de gebruikersinterface op track_id = $ ("# track_id"). Val (); $ ("# track_id"). Hide (); $ ("#startTracking_status"). html ("Tracking-training: "+ track_id +""););

Conclusie

In deze zelfstudie hebben we gekeken naar een overzicht van de ExerciseTracker-app, de startpagina gemaakt en begonnen aan de pagina Trackworkout. In de volgende zelfstudie voltooien we de pagina Trackworkout en voltooien we de ExerciseTracker-app door de gebruiker toe te staan ​​opgeslagen workouts te bekijken die zijn geplot op een Google Map.