2013-08-20 61 views
3

我正在使用的網站使用HTML5地理位置api。它工作正常,但我需要知道該功能是否已被授權。
navigator.geolocation只會告知功能是否可用。我想知道的是用戶是否已經啓用它。基本上,我需要知道瀏覽器是否會請求使用該功能的權限。可能嗎?有沒有辦法知道當前域是否啓用地理定位?

回答

6

如果用戶不允許您的應用程序使用地理定位API方法getCurrentPositionwatchPosition將通過錯誤回調返回PositionError對象:

void getCurrentPosition(successCallback, 
         errorCallback, 
         options); 

long watchPosition(successCallback, 
        errorCallback, 
        options); 

的PositionError樣子:

PositionError { 
    code; 
    message; 
}; 

其中代碼的可能值爲:

PositionError.PERMISSION_DENIED = 1; 
PositionError.POSITION_UNAVAILABLE = 2; 
PositionError.TIMEOUT = 3; 

和更具體:

  • PERMISSION_DENIED(數值1) 位置採集過程失敗,因爲該文件沒有使用地理位置API的權限。

該文檔here

3

沒有檢查永久授權。
你可以做的唯一一件事是嘗試「猜測」用戶是否通過估計時間授權。
例如:

  • 超過1.5秒檢索地理位置 - >用戶大概得 點擊式界面,讓AUTH

  • 500ms以內 - >非常肯定用戶已經給AUTH

+0

爲什麼試着猜猜我們是否可以做錯誤處理? – sigmus

相關問題