用户在javascript中阻止访问后请求位置坐标

时间:2017-02-27 00:54:13

标签: javascript html5 google-chrome geolocation progressive-web-apps

如果用户过去阻止了我的请求,如何在javascript中提示用户输入地理位置? (使用navigator.geolocation.getCurrentPosition)。

例如,我的网络应用需要位置服务,用户不小心点击“阻止”,或者他们改变主意。我该怎么办才能再次提示他们?

2 个答案:

答案 0 :(得分:5)

如@ 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);
     }
 });

Geolocation docs

答案 1 :(得分:4)

你不能。

用户必须手动管理其浏览器设置,因为在拒绝位置权限时,您的站点会被添加到黑名单。

以下是Chrome用户管理其位置权限的说明:https://support.google.com/chrome/answer/142065?hl=en