2014-05-07 58 views
0

我有一個問題,我無法找到一個解決方案。基本上,使用谷歌地圖時,直到用戶點擊允許或拒絕(將觸發錯誤回調)纔會加載成功回調。所以只要彈出式請求訪問仍然被忽略,屏幕上就不顯示任何內容。navigator.geolocation.getCurrentPosition超時如果不授予/拒絕訪問

有沒有辦法說如果10秒後沒有點擊「允許」或「拒絕」,然後調用錯誤回調?

+0

它可能有助於看到一些有問題的代碼,所以我們得到一個更好的主意,你在做什麼 – duncan

+0

這是這裏所描述的基本設置:https://開頭developer.mozilla.org/en-US/docs/Web/API/Geolocation.getCurrentPosition –

回答

0

我剛剛使用了一個setTimeout函數,它在X秒後調用handleNoGeolocation函數。如果用戶點擊「允許」,則執行成功功能。

這裏是我的代碼:

if(navigator.geolocation) { 
      var timeout = setTimeout(function(){ 
      handleNoGeolocation(); 
      }, 3000); 
      navigator.geolocation.getCurrentPosition(function(position) { 
      clearTimeout(timeout); 
      initialLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); 
      map.setCenter(initialLocation); 
      doDirections(); 
      }, handleNoGeolocation, {timeout: 10000, enableHighAccuracy: true}); 
    }