2016-12-30 7 views
0

Ich mache eine einfache PhoneGap-App, die den Benutzer Standort erhält.Gelöster funktioniert nicht in Android - PhoneGap Build

der Code für meine Build verwendet von Beispielen der Karten ist documentation

Es folgt mein xml-Code:

<content src="index.html" /> 
<preference name="DisallowOverscroll" value="true" /> 
<preference name="android-minSdkVersion" value="14" /> 
<preference name="StatusBarOverlaysWebView" value="false" /> 
<preference name="StatusBarBackgroundColor" value="#ee6e73" /> 
<preference name="StatusBarStyle" value="blacktranslucent" /> 
<preference name="orientation" value="portrait" /> 
<plugin name="cordova-plugin-statusbar" source="npm" spec="~2.1.3" /> 
<plugin name="cordova-plugin-geolocation" source="npm" /> 
<plugin name="org.apache.cordova.globalization" source="npm" /> 
<plugin name="org.apache.cordova.geolocation" source="npm" /> 
<plugin name="cordova-plugin-console" source="npm" spec="~1.0.3" /> 
<plugin name="cordova-plugin-dialogs" source="npm" spec="~1.2.1" /> 
<plugin name="cordova-plugin-whitelist" source="npm" spec="~1.2.1" /> 

<feature name="Geolocation"> 
<param name="android-package" value="org.apache.cordova.geolocation.GeoBroker" /> 
</feature> 
<allow-navigation href="*" /> 
<access origin="*" launch-external="yes" /> 
<access origin="*://*.googleapis.com/*" subdomains="true" /> 
<access origin="*://*.gstatic.com/*" subdomains="true" /> 
<access origin="*://*.google.com/*" subdomains="true" /> 
<access origin="*://*.googleusercontent.com/*" subdomains="true" /> 
<allow-intent href="http://*/*" /> 
<allow-intent href="https://*/*" /> 
<allow-intent href="tel:*" /> 
<allow-intent href="sms:*" /> 
<allow-intent href="mailto:*" /> 
<allow-intent href="geo:*" /> 
<platform name="android"> 
<allow-intent href="market:*" /> 
</platform> 
<platform name="ios"> 
<allow-intent href="itms:*" /> 
<allow-intent href="itms-apps:*" /> 
</platform> 

Während die App perfekt auf dem Browser funktioniert, die Android-Version nicht Laden Sie den Standort.

bemerkt ferner, dass maps.gstatic.com und mts.googleapis.com nicht aus der App geladen ist, sowohl in den Browser geladen werden, die den Ort führt dann

Vielen Dank im Voraus bei der Bereitstellung.

UPDATE 1:

Verwirrungen zu vermeiden, habe ich die Standard-config.xml erzeugt durch phonegap Desktop-App, noch der Standort erhalten wird, nicht verwendet.

<?xml version='1.0' encoding='utf-8'?> 
<widget id="com.phonegap.helloworld" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0"> 
<name>new</name> 
<description> 
Hello World sample application that responds to the deviceready event. 
</description> 
<author email="[email protected]" href="http://phonegap.com"> 
    PhoneGap Team 
</author> 
<content src="index.html" /> 
<preference name="DisallowOverscroll" value="true" /> 
<preference name="android-minSdkVersion" value="14" /> 
<plugin name="cordova-plugin-battery-status" source="npm" spec="~1.1.1" /> 
<plugin name="cordova-plugin-camera" source="npm" spec="~2.1.1" /> 
<plugin name="cordova-plugin-media-capture" source="npm" spec="~1.2.0" /> 
<plugin name="cordova-plugin-console" source="npm" spec="~1.0.2" /> 
<plugin name="cordova-plugin-contacts" source="npm" spec="~2.0.1" /> 
<plugin name="cordova-plugin-device" source="npm" spec="~1.1.1" /> 
<plugin name="cordova-plugin-device-motion" source="npm" spec="~1.2.0" /> 
<plugin name="cordova-plugin-device-orientation" source="npm" spec="~1.0.2" /> 
<plugin name="cordova-plugin-dialogs" source="npm" spec="~1.2.0" /> 
<plugin name="cordova-plugin-file" source="npm" spec="~4.1.1" /> 
<plugin name="cordova-plugin-file-transfer" source="npm" spec="~1.5.0" /> 
<plugin name="cordova-plugin-geolocation" source="npm" spec="~2.1.0" /> 
<plugin name="cordova-plugin-globalization" source="npm" spec="~1.0.3" /> 
<plugin name="cordova-plugin-inappbrowser" source="npm" spec="~1.3.0" /> 
<plugin name="cordova-plugin-media" source="npm" spec="~2.2.0" /> 
<plugin name="cordova-plugin-network-information" source="npm" spec="~1.2.0" /> 
<plugin name="cordova-plugin-splashscreen" source="npm" spec="~3.2.1" /> 
<plugin name="cordova-plugin-statusbar" source="npm" spec="~2.1.2" /> 
<plugin name="cordova-plugin-vibration" source="npm" spec="~2.1.0" /> 
<plugin name="cordova-plugin-whitelist" source="npm" spec="~1.2.1" /> 

<access origin="*" /> 
<allow-intent href="http://*/*" /> 
<allow-intent href="https://*/*" /> 
<allow-intent href="tel:*" /> 
<allow-intent href="sms:*" /> 
<allow-intent href="mailto:*" /> 
<allow-intent href="geo:*" /> 
<platform name="android"> 
    <allow-intent href="market:*" /> 
</platform> 
<platform name="ios"> 
    <allow-intent href="itms:*" /> 
    <allow-intent href="itms-apps:*" /> 
</platform> 

Antwort

0

dieses Plugin Versuchen lat lange von Android-Gerät zu bekommen und dann Karte auf Erfolg, dass rufen-Plug-in

rufen

Cordova Plugin Geolocation

lat lange hinzufügen, um die Karte in Erfolgsfunktion empfing

document.addEventListener("deviceready", appReady, false); 
function appReady(){ 
    navigator.geolocation.getCurrentPosition(onSuccess, onError); 
} 

// onSuccess Callback 
// This method accepts a Position object, which contains the 
// current GPS coordinates 

var onSuccess = function(position) { 
    alert('Latitude: '   + position.coords.latitude   + '\n' + 
      'Longitude: '   + position.coords.longitude   + '\n' + 
      'Altitude: '   + position.coords.altitude   + '\n' + 
      'Accuracy: '   + position.coords.accuracy   + '\n' + 
      'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' + 
      'Heading: '   + position.coords.heading   + '\n' + 
      'Speed: '    + position.coords.speed    + '\n' + 
      'Timestamp: '   + position.timestamp    + '\n'); 
}; 

// onError Callback receives a PositionError object 

function onError(error) { 
    alert('code: ' + error.code + '\n' + 
      'message: ' + error.message + '\n'); 
} 

Versuchen Sie dies und le Ich weiß, ob das für Sie funktioniert oder nicht.

+0

Dank laden verwenden, aber das Plugin bereits in meinem Code enthalten ist . – meetrk85

+0

Haben Sie 'cordova.js' in Ihre' .html' Datei eingefügt oder wenn Sie eine App über 'PhoneGap Build Online' erstellen, dann fügen Sie' phonegap.js' hinzu und versuchen Sie diese Funktion auch auf 'deviceready eventlistner' aufzurufen –

+0

haben versucht Das hat aber auch kein Glück. Ich habe keine physischen Daten, könnte es ein Problem auf dem Emulator sein? – meetrk85

0

Ich habe meine Build

<preference name="phonegap-version" value="cli-6.3.0" /> 

aktualisiert Sie

<plugin name="cordova-plugin-geolocation" source="npm" /> 
<plugin name="org.apache.cordova.geolocation" source="npm" /> 

und

<feature name="Geolocation"> 
<param name="android-package" value="org.apache.cordova.geolocation.GeoBroker" /> 
</feature> 

aus dem Code und fügen Sie den Code unten

für Android entfernen haben

<plugin name="cordova-plugin-geolocation" spec="0.3.12" source="npm"/> 
<plugin name="cordova-plugin-network-information" spec="0.2.15" source="npm" /> 

für IOS

<plugin name="cordova-plugin-geolocation" spec="https://github.com/apache/cordova-plugin-geolocation.git"/> 
<plugin name="cordova-plugin-network-information" spec="https://github.com/apache/cordova-plugin-network-information.git" /> 

und diesen Ort

navigator.geolocation.getCurrentPosition(zoomToLocation, locationError, { maximumAge: 5000, timeout: 7500 }); 

function zoomToLocation(position) { 
      var geolocate = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); 
+0

Danke, aber keine Änderung im Ergebnis es immer noch nicht die Geolocation – meetrk85

+0

@ meetrk85: Ich lade den Standort aus Navigator – shahbaz

Verwandte Themen