2016-03-22 1 views
2

Ich bin derzeit in der Startphase eine App über Ionic Gebäude. Im Moment möchte ich die cordova Geolocation darin implementieren. Dies führt jedoch beim Öffnen zu einem Fehler. Zu Testzwecken verwende ich ionic serve und überprüfe es in localhost.

angular.module('starter', ['ionic','ionic.service.core', 'ui.router']) 
.controller('AgeCtrl', function ($scope, $state, $http, $cordovaGeolocation) { 


$scope.toggleItem = function (item) { 
    item.checked = !item.checked; 
}; 

$scope.items = [ 
    { id: '0-12' }, 
    { id: '12-18' }, 
    { id: '18-30' }, 
    { id: '30-65' }, 
    { id: '65+' } 
]; 

    $scope.time = Date.now(); 
    $scope.weather = $http.get("http://api.openweathermap.org/data/2.5/weather?q=Amsterdam&units=metric&APPID=...").then(function(resp) { 
    console.log("success", resp); 
    }, function(err) { 
    console.log("error"); 
    }) 

var posOptions = {timeout: 10000, enableHighAccuracy: false}; 
$cordovaGeolocation 
.getCurrentPosition(posOptions) 

.then(function (position) { 
    var lat = position.coords.latitude 
    var long = position.coords.longitude 
    console.log(lat + ' ' + long) 
}, function(err) { 
    console.log(err) 
}); 

$scope.Confirm = function(){ 
    $state.go('home'); 
} 
}) 

Gibt es einen Ort, an dem ich einen Fehler gemacht habe, der dieses Problem verursacht?

+0

Haben Sie das Plugin richtig an die App hinzufügen? –

+0

Habe auch ein neues Projekt gemacht und es dort probiert. Running it agains zeigt "plugin cordova-plugin-geolocation bereits installiert auf android" – patrick

Antwort

0

Ich denke, es ist nicht so $cordovaGeolocation in ionischer verwiesen wird. Versuchen Sie navigator.geolocation.getCurrentPosition stattdessen?

+0

Dies scheint ja zu arbeiten! – patrick

1

Ionic dienen nur die Anwendung im Browser emuliert. Sie erhalten keinen Zugriff auf die Cordova-Plugins im Browser.

Um die Bibliotheken enthalten, die Sie benötigen eine spezifische Plattform nach dem Hinzufügen in Abhängigkeit von der Anwendung auf dem Gerät ausgeführt werden welches Gerät Sie haben.

für iOS:

Ionic platform add ios

für Android:

ionic platform add android

Nachdem die Plattformen hinzugefügt Sie können auf dem Gerät erstellen und ausführen mit dem folgenden Befehl

für iOS:

für Android:

ionic run android

+0

Leider habe ich Probleme, es direkt zu laufen. Ich habe versucht, eine APK davon zu machen und es direkt auf meinem Telefon zu installieren, leider funktioniert es immer noch nicht – patrick

+0

Es gibt 3 andere Möglichkeiten: 1. Führen Sie es in Visual Studio 2015 mit Cross-Plattform-Tools hat es in Emulatoren für Standort und gebaut Bewegung mit Ripple. 2. Laden Sie Ihre App auf ionic.io und laden Sie sie anschließend in die Anwendung "ionic view" herunter. 3. Erstellen Sie es als Paket und führen Sie es mit dem APK auf einem nativen Emulator aus. –

+0

Wenn Sie es auf Ihrem Handy (Android nehme ich an) haben Sie Entwickler-Modus eingeschaltet und USB Debugging aktiv –

1

ich glaube, das Problem mit Ihrer ngCordova Installation. unten beschriebenen Schritte tun -

1- installieren --------------> Bower installieren ngCordova

2- sind in index.html oben cordova.js ----- -------------> script src = "lib/ngCordova/dist/ng-cordova.js"

3- inject ------------- > angular.module (starter, ['ngCordova'])

run IONIC Servieren und Ausgabe wird weg sein .. Wenn es immer noch Fehler zeigt, dass/dist/ngCordova nicht vorhanden ist, dann gehen Sie manuell zu Ort, wo ng Cordova installiert ist und kopiere es in den Pfad zB -/lib/ngCordova/dist/...

es wird definitiv lösen Ihr Problem