Request location coordinates after user has blocked access in javascript

大憨熊 提交于 2019-12-01 23:34:19

问题


How can I prompt a user for their geo-location in javascript if they've blocked my request in the past? (using navigator.geolocation.getCurrentPosition).

For example, my web app requires location services, and the user accidentally clicks "block", or they change their mind. What can I do to prompt them again?


回答1:


As mentioned by @matthew-shwery, you can not change the permission.
the best you could do is check for the permission and notify the user is the permission is denied

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




回答2:


You can't.

The user must manage their browser settings manually because your site is added to a blacklist when denied location permissions.

Here are instructions for Chrome users to manage their location permissions: https://support.google.com/chrome/answer/142065?hl=en



来源:https://stackoverflow.com/questions/42476180/request-location-coordinates-after-user-has-blocked-access-in-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!