2010-03-18 115 views
2

當第一次嘗試在iPhone上獲取地理位置時 - 我拒絕了。 每個其他時間我想(在頁面的另一重裝)的位置,我沒有得到任何響應(沒有錯誤和沒有成功):用戶不允許地理位置 - 第二次通知用戶

navigator.geolocation.getCurrentPosition(
    function (location) { 
     ig_location.lat = location.coords.latitude; 
     ig_location.lng = location.coords.longitude; 
     alert('got it!'); 
    }, 
    function(PositionError) { 
     alert('failed!' + PositionError.message); 
    } 
); 

有沒有辦法每次我失敗時通知用戶獲取位置?
(我不需要使用watchPosition ...)

回答

4

Geolocation API的設計使其不會在用戶拒絕後重複請求。您可以重置設置應用中的位置警告,但這只是您可以做的所有事情。

一旦用戶連續兩次拒絕地理位置權限,API將假定他們不需要它,並且不再詢問。從核心位置文檔

精確用詞:

如果用戶拒絕你的應用程序使用位置服務的,這個方法報告一個kCLErrorDenied錯誤。一旦收到這樣的錯誤,你應該停止位置服務。

+2

感謝您的回答。 爲其他人尋找實際的文件 - 它在:http://developer.apple.com/iphone/library/documentation/CoreLocation/Reference/CoreLocation_Framework/CoreLocation_Framework.pdf – Dror 2010-03-19 06:23:23