Tôi đang viết ứng dụng đầu tiên của mình trong Phonegap và tôi đã thử nghiệm nó trên thiết bị Android. Tôi tin rằng tôi đã cấp quyền thích hợp:Phonegap Android internet không hoạt động
<uses-permission android:name="android.permission.INTERNET" />
Nhưng bản đồ không hiển thị. Tôi đang cố gắng để có được một vĩ độ và kinh độ từ một dịch vụ web và sử dụng điều này để đặt một lá cờ trên một bản đồ Google. Tôi tin rằng vấn đề là thực sự với truy cập internet, như thể tôi chạy điều này thông qua Visual Studio như một trang web, dịch vụ trả về tọa độ và bản đồ được hiển thị. Tuy nhiên, khi ứng dụng được biên soạn và trang web đó được chạy bên trong webview ứng dụng, tọa độ không được trả lại và không có bản đồ nào được hiển thị.
Tôi cũng đã thêm một bảng để hiển thị tọa độ được trả lại, một lần nữa chúng được hiển thị trong trình duyệt nhưng trống trong ứng dụng đang chạy. Có ai có bất kỳ ý tưởng tại sao webview sẽ không thể kết nối với internet và trả lại dữ liệu cần thiết? Tôi đã xóa địa chỉ thực của dịch vụ web nhưng tôi biết điều đó là tốt vì nó hoạt động trong trình duyệt.
trangHTML:
<!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>
do u cho phép truy cập nguồn gốc * trên config.xml –
Điều đó đã làm điều đó, cảm ơn. Vì bạn là người đầu tiên nếu bạn thêm nó làm câu trả lời, tôi sẽ đánh dấu nó là chính xác. Cảm ơn. – collusionbdbh