我正在创建一个移动网站,它使用 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;
}
}