Ich schreibe meine erste App in Phonegap und ich habe es auf einem Android-Gerät getestet. Ich glaube, ich habe die entsprechende Erlaubnis erteilt:Phonegap Android Internet funktioniert nicht
<uses-permission android:name="android.permission.INTERNET" />
Aber die Karte wird nicht angezeigt. Ich versuche, einen Breiten- und Längengrad von einem Web-Service zu erhalten und damit eine Flagge auf einer Google-Karte zu setzen. Ich glaube, das Problem ist tatsächlich mit dem Internetzugang, als würde ich dies über Visual Studio als Website ausführen, der Dienst gibt die Koordinaten zurück und die Karte wird angezeigt. Wenn die App jedoch kompiliert wird und diese Website in der App-Webansicht ausgeführt wird, werden die Koordinaten nicht zurückgegeben und es wird keine Karte angezeigt.
Ich habe auch eine Tabelle hinzugefügt, um die zurückgegebenen Koordinaten anzuzeigen, wieder werden sie in einem Browser angezeigt, sind aber in der laufenden App leer. Hat jemand eine Idee, warum der Webview keine Verbindung zum Internet herstellen und die erforderlichen Daten zurückgeben könnte? Ich habe die tatsächliche Adresse des Web-Service entfernt, aber ich weiß, dass es in Ordnung ist, wie es in einem Browser funktioniert.
HTML-Seite:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=true"></script>
<link rel="stylesheet" type="text/css" href="css/index.css" />
</head>
<body>
<div class="app2">
<div id="map" style="width: 200px; height: 150px"></div>
<script type="text/javascript">
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "http://www.xxxxxxxx.com/mobile/iphone/xml/postal.asp?postal=33173", false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
var myOptions = {
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP,
};
var map = new google.maps.Map(document.getElementById("map"), myOptions);
var lat = x[i].getElementsByTagName("latitude")[0].childNodes[0].nodeValue;
var long = x[i].getElementsByTagName("longitude")[0].childNodes[0].nodeValue;
var pos = new google.maps.LatLng(lat, long);
var infowindow = new google.maps.InfoWindow({
map: map,
position: pos,
content: "Postcode 33173(Lat:" + lat + ", Long:" + long + ")"
});
map.setCenter(pos);
</script>
<script>
document.write("<table border='1'>");
document.write("<tr><td>Postcode</td><td>latitude</td><td>longitude</td></tr>");
var x = xmlDoc.getElementsByTagName("position");
for (i = 0; i < x.length; i++) {
document.write("<tr><td>33173</td><td>");
document.write(x[i].getElementsByTagName("latitude")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("longitude")[0].childNodes[0].nodeValue);
document.write("</td></tr>");
}
document.write("</table>");
</script>
</div>
</body>
</html>
Manifest:
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="1.0.0" android:windowSoftInputMode="adjustPan" package="dig.phonegap.loa_app" xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="18" />
<application android:allowBackup="false"
android:hardwareAccelerated="true"
android:icon="@drawable/icon"
android:label="@string/app_name">
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
android:label="@string/app_name"
android:name="HelloWorld"
android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
erlauben Sie Zugriff-Herkunft * auf config.xml –
Das hat den Trick, danke. Da Sie zuerst waren, wenn Sie es als Antwort hinzufügen, werde ich es als richtig markieren. Vielen Dank. – collusionbdbh