15

初めてCookieを設定する以外に、ユーザーがブラウザの緯度/経度を返すためにnavigator.geolocationの許可をすでに与えているかどうかを検出する方法はありますか?ユーザーがnavigator.geolocationの使用を許可しているかどうかを検出する方法はありますか?

ある場合、それはすべてのブラウザで同じか、すべてのブラウザで異なるのでしょうか?

この主題は、GeoLocation API – Chrome/Safari – Permission management and Visual Differencesによるpartially answered elsewhere

されている、Chromeはrevokableワンタイム許可を要求します。私は記事を読み終えていないが、パーミッションの記憶は純粋にクロムのことではないようだ。

答えて

22

何(そのサポートジオロケーション)すべてのHTML5のブラウザでサポートされるべきであるのlocalStorageを使用する方法について

if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(successFunction, errorFunction); 
} 
//Get latitude and longitude; 
function successFunction(position) { 
    var lat = position.coords.latitude; 
    var long = position.coords.longitude; 

    localStorage['authorizedGeoLocation'] = 1; 
} 

function errorFunction(){ 
    localStorage['authorizedGeoLocation'] = 0; 
} 

function checkauthorizedGeoLocation(){ // you can use this function to know if geoLocation was previously allowed 
    if(typeof localStorage['authorizedGeoLocation'] == "undefined" || localStorage['authorizedGeoLocation'] == "0") 
     return false; 
    else 
     return true; 
} 

そして、あなたは以下の機能を使用して確認してください。

alert(checkauthorizedGeoLocation()); 

This is the jsfiddle if you need to check

+0

今どこかに行くよ! – bugmagnet

+0

私はそれが助けてくれることを望みます。 –

+0

メッディ、私はあなたに恩恵を与えている。私にgeolocationを与えるHTMLバージョンが私にlocalStorageを与えるものであることが私に指摘されています。 – bugmagnet

4

specによれば、navigator.geolocationには3つの方法しかありません。しかし、Cookieやローカルストレージに保存するのはおそらく完全に適しています。ユーザーエージェントにもその権限が格納されているため、ユーザーがブラウザ間を移動する際に正しく動作するはずです。

+0

ただし、https://developer.mozilla.org/en-US/docs/WebAPI/Using_geolocation?redirectlocale=en-US&redirectslug=Using_geolocationの「アクセス許可のプロンプト」セクションは、少なくとも1つのブラウザにアクセス許可を格納するメカニズム。 – bugmagnet

+0

これはFirefoxのアドオンにのみ適用され、一般的なウェブコンテンツには適用されないようです。 – AshleysBrain

関連する問題