android webview地理位置不工作
我已经浏览了以下链接,以便在WebView中显示地理位置,但位置仍然没有在WebView中显示,但在移动浏览器中正常工作 我已将以下权限添加到WebView中:android webview地理位置不工作,android,webview,geolocation,android-webview,android-location,Android,Webview,Geolocation,Android Webview,Android Location,我已经浏览了以下链接,以便在WebView中显示地理位置,但位置仍然没有在WebView中显示,但在移动浏览器中正常工作 我已将以下权限添加到WebView中: <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <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_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
但仍然没有成功
下面是我在getLocation按钮上执行的javascript:
<script>
var x = document.getElementById("geodemo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition, showError);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
var latlon = position.coords.latitude + "," + position.coords.longitude;
var img_url = "http://maps.googleapis.com/maps/api/staticmap?center="
+latlon+"&zoom=14&size=400x300&sensor=false";
document.getElementById("mapholder").innerHTML = "<img src='"+img_url+"'>";
}
function showError(error) {
switch(error.code) {
case error.PERMISSION_DENIED:
x.innerHTML = "User denied the request for Geolocation."
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML = "Location information is unavailable."
break;
case error.TIMEOUT:
x.innerHTML = "The request to get user location timed out."
break;
case error.UNKNOWN_ERROR:
x.innerHTML = "An unknown error occurred."
break;
}
}
</script>
var x=document.getElementById(“geodemo”);
函数getLocation(){
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(showPosition,showError);
}否则{
x、 innerHTML=“此浏览器不支持地理位置。”;
}
}
功能显示位置(位置){
var latlon=位置.coords.latitude+“,”+位置.coords.latitude;
var img_url=”http://maps.googleapis.com/maps/api/staticmap?center="
+latlon+“&zoom=14&size=400x300&sensor=false”;
document.getElementById(“地图持有者”).innerHTML=“”;
}
功能错误(错误){
开关(错误代码){
案例错误。权限被拒绝:
x、 innerHTML=“用户拒绝了地理位置请求。”
打破
案例错误。位置不可用:
x、 innerHTML=“位置信息不可用。”
打破
大小写错误。超时:
x、 innerHTML=“获取用户位置的请求超时。”
打破
案例错误。未知错误:
x、 innerHTML=“发生未知错误。”
打破
}
}
您是否在webview的WebChromeClient中过度使用了GeolocationPermissionsShowPrompt方法 您是否过度使用了webview的WebChromeClient中的onGeolocationPermissionsShowPrompt方法 是的,我过度使用了onGeolocationPermissionsShowPrompt
。是的,我过度使用了onGeolocationPermissionsShowPrompt
。您找到了解决方法吗?我被困在同一个问题上你有没有找到解决办法?我被困在同一个问题上
<script>
var x = document.getElementById("geodemo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition, showError);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
var latlon = position.coords.latitude + "," + position.coords.longitude;
var img_url = "http://maps.googleapis.com/maps/api/staticmap?center="
+latlon+"&zoom=14&size=400x300&sensor=false";
document.getElementById("mapholder").innerHTML = "<img src='"+img_url+"'>";
}
function showError(error) {
switch(error.code) {
case error.PERMISSION_DENIED:
x.innerHTML = "User denied the request for Geolocation."
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML = "Location information is unavailable."
break;
case error.TIMEOUT:
x.innerHTML = "The request to get user location timed out."
break;
case error.UNKNOWN_ERROR:
x.innerHTML = "An unknown error occurred."
break;
}
}
</script>