android 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" /

我已经浏览了以下链接,以便在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_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>