5

HTML5ジオロケーションを使用して、ボタンクリックの現在の位置をユーザーに要求するモバイルWebサイトを作成しています。これはモバイル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