Sto scrivendo la mia prima app in PhoneGap e l'ho testata su un dispositivo Android. Credo di aver concesso l'autorizzazione appropriata:Internet Android per telefono non funziona
<uses-permission android:name="android.permission.INTERNET" />
Ma la mappa non viene visualizzata. Sto cercando di ottenere latitudine e longitudine da un servizio web e usarlo per mettere una bandiera su una mappa di Google. Credo che il problema sia in realtà con l'accesso a Internet, come se lo eseguissi tramite Visual Studio come sito Web, il servizio restituisce le coordinate e viene visualizzata la mappa. Tuttavia, quando l'app viene compilata e il sito Web viene eseguito all'interno della visualizzazione Web dell'app, le coordinate non vengono restituite e non viene visualizzata alcuna mappa.
Ho anche aggiunto una tabella per mostrare le coordinate restituite, di nuovo vengono visualizzate in un browser ma sono vuote nell'app in esecuzione. Qualcuno ha qualche idea del perché la webview non sarebbe in grado di connettersi a internet e restituire i dati richiesti? Ho rimosso l'indirizzo effettivo del servizio web, ma so che va bene in quanto funziona in un browser.
paginaHTML:
<!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>
manifesto:
<?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>
consente l'accesso all'origine * su config.xml –
Questo ha fatto il trucco, grazie. Dal momento che sei stato il primo se lo aggiungi come risposta, lo contrassegnerò come corretto. Grazie. – collusionbdbh