我正在写Phonegap的第一个应用程序,我一直在
Android设备上测试它.我相信我已经给予了适当的许可:
<uses-permission android:name="android.permission.INTERNET" />
但地图没有显示出来.我试图通过网络服务获得经度和经度,并使用它在Google地图上放置一个标志.我相信问题实际上是因特网访问,就好像我通过Visual Studio作为网站运行,服务返回坐标并显示地图.但是,当编译应用程序并且该应用程序webview内部运行该网站时,不会返回坐标,也不会显示任何地图.
我还添加了一个表来显示返回的坐标,它们再次显示在浏览器中,但在正在运行的应用程序中是空白的.有谁知道为什么webview无法连接到互联网并返回所需的数据?我删除了Web服务的实际地址,但我知道这很好,因为它在浏览器中工作.
HTML页面:
<!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>
表现:
<?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>
解决方法
在config.xml上试试这个:
平台 – > android – > res – > xml – > config.xml中
平台 – > ios – > config.xml中
平台 – > wp7 – > config.xml中
平台 – > wp8 – > config.xml中
<access origin="*" />