1

如果他們過去阻止了我的請求,如何提示用戶在javascript中的地理位置? (使用navigator.geolocation.getCurrentPosition)。用戶在javascript中阻止訪問後請求位置座標

例如,我的網絡應用需要位置服務,而用戶不小心點擊了「阻止」,或者他們改變了主意。我能做些什麼來再次提醒他們?

+4

的[再次要求地理位置的許可,如果被拒絕]可能的複製(HTTP:/ /stackoverflow.com/questions/20678707/ask-for-geolocation-permission-again-if-it-was-denied) –

回答

2

正如@馬修 - 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