5

我正在创建一个移动网站,它使用 HTML5 地理位置请求用户单击按钮时的当前位置。这在移动 Chrome 中运行良好 - 系统会提示用户分享他们当前的位置,如果他们接受,程序流程会按预期继续。但是,在移动版 Safari 中,永远不会提示用户分享他们的位置,并且浏览器默认显示地理位置的“PERMISSION_DENIED”错误。

就好像用户选择不分享他们的位置,尽管他们从来没有被提示过......

地理位置代码:

function geoLocate() {
try{
    if(navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(getUserPosition, handleGeolocateErrors);
    } else {
        alert('your browser does not support geolocation');
    }
} catch(evt) {
    alert(evt);
}

}

错误处理:

function handleGeolocateErrors(error) {
switch(error.code) {
    case error.PERMISSION_DENIED: alert('User did not share location'); break;
    case error.POSITION_UNAVAILABLE: alert('Unable to get position'); break;
    case error.TIMEOUT: alert('Request timed out'); break;
    default: alert('An error occured'); break;
}
}
4

0 回答 0