我在做this tutorial這將返回GPS座標。當我在iPhone上運行應用程序時,我首先要求UIAlertView
請求訪問我的GPS座標的權限。獲取位置權限對話框的結果
我需要知道這個UIAlertView
是從哪裏拋出的?它來自操作系統嗎? 我們可以捕捉這種方法嗎?當用戶點擊「允許」或「不允許」時,我可以將他的選擇打印到控制檯嗎?
如何以編程方式執行此操作?有這個事件嗎?
我在做this tutorial這將返回GPS座標。當我在iPhone上運行應用程序時,我首先要求UIAlertView
請求訪問我的GPS座標的權限。獲取位置權限對話框的結果
我需要知道這個UIAlertView
是從哪裏拋出的?它來自操作系統嗎? 我們可以捕捉這種方法嗎?當用戶點擊「允許」或「不允許」時,我可以將他的選擇打印到控制檯嗎?
如何以編程方式執行此操作?有這個事件嗎?
此警報由OS顯示。用戶必須允許使用基於位置的API。您可以要求CLLocationManager
獲取當前的authorizationStatus
,並在狀態更改(將調用委託方法)時收到通知。請注意,用戶還可以稍後在設置應用中禁用位置服務。
我假設你正在使用CLLocationManager。應用程序使用API的能力發生變化時,您的委託將獲取locationManager:didChangeAuthorizationStatus。
編輯: 您的應用程序第一次嘗試使用該服務時,系統會提示用戶。如果用戶回答否,則應用程序將無法使用該服務,除非他們轉到設置 - >常規 - >位置服務並更改應用程序的設置。
如果您查詢API的狀態並且被禁止,您可以自己彈出並指導用戶如何更改應用程序的設置。
好的,例如說用戶點擊了「否」或不允許訪問GPS位置的權限。但用戶後來改變了主意,他需要授權訪問GPS。在那種情況下,我如何再次調用'UIAlertview'? – sharon
我相信用戶將不得不轉到iPhone設置屏幕並更改您的應用程序的選定選項。 –
好的,例如說用戶點擊了「否」或不允許訪問GPS位置的權限。但用戶後來改變了主意,他需要授權訪問GPS。在那種情況下,我如何再次調用'UIAlertview'? – sharon
@sharon - 你沒有。你沒有第一次給它打電話。您可以觀察授權中的更改,以便您可以選擇退出位置功能。但是你不能再要求用戶許可。當然,如果你注意到你沒有權限,你可以隨時解除你自己的警報。但他們不得不深入其設置以打開您的權限,您無法直接將其發送到那裏。 –
從iOS5開始,您可以創建自己的「設置」按鈕並使其調用:[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@「prefs:root = General」]];以啓用直接訪問設置。 – paiego