web-dev-qa-db-ja.com

ユーザーがJavaScriptでアクセスをブロックした後に位置座標を要求する

ユーザーが過去に私のリクエストをブロックしたことがある場合、ユーザーにJavaScriptでジオロケーションを要求する方法を教えてください。 ( navigator.geolocation.getCurrentPosition を使用)。

たとえば、私のWebアプリには位置情報サービスが必要ですが、ユーザーが誤って「ブロック」をクリックしたり、気が変わったりします。もう一度プロンプトを表示するにはどうすればよいですか?

9
d-_-b

@ matthew-shweryで言及されているように、権限を変更することはできません。
最善の方法は、権限を確認し、権限が拒否されたことをユーザーに通知することです

navigator.permissions.query({
     name: 'geolocation'
 }).then(function(result) {
     if (result.state == 'granted') {
         report(result.state);
         geoBtn.style.display = 'none';
     } else if (result.state == 'Prompt') {
         report(result.state);
         geoBtn.style.display = 'none';

         navigator.geolocation.getCurrentPosition(revealPosition, positionDenied, geoSettings);
     } else if (result.state == 'denied') {
         report(result.state);
         geoBtn.style.display = 'inline';
     }
     result.onchange = function() {
         report(result.state);
     }
 });

ジオロケーションドキュメント

8
Adibas03

できません。

ロケーション許可を拒否すると、サイトがブラックリストに追加されるため、ユーザーはブラウザー設定を手動で管理する必要があります。

Chromeユーザーが位置情報の権限を管理するための手順: https://support.google.com/chrome/answer/142065?hl=ja

4
Matthew Shwery