2013-11-25 59 views
2

我正在使用核心位置框架來收集iOS應用中的設備位置。當我第一次在設備上安裝應用程序時,iOS會通過警報視圖請求用戶權限,如下所示。iOS核心位置:如何禁用用戶權限的默認iOS彈出消息

App screenshot user permission

有什麼辦法禁用此默認的警報視圖,並顯示一條定製信息給用戶?

+0

[替換爲CLLocationManager的「用途」屬性](http://stackoverflow.com/questions/12562152/replacement-for-purpose-property-of-cllocationmanager)或請參閱http:// stackoverflow。 com/questions/18473265/how-to-change-text-in-nslocationusagedescription – rmaddy

+0

@rashmiRanjan您可以編程方式設置目的消息。查看答案 –

+0

@Bhumeshwerkatre這已被棄用。 – rmaddy

回答

4

我添加了截圖添加目的信息的地方。

enter image description here

+0

自iOS 6以來,這已被棄用。 – rmaddy

+0

@rmaddy我更新了我的答案 –

+0

好的。但是不要發佈這個答案,你應該將問題標記爲重複。 – rmaddy

2

這些警報是系統生成的,不能由開發人員編輯。如果它們是可編輯的,那麼開發人員可以改變它的含義,或者讓最終用戶知道他們要求的權限並不明顯。

+0

這是不正確的。您可以通過在Info.plist中設置一個值來自定義消息。 – rmaddy

+0

@Maddy:你可以告訴我們如何在info.plist文件中做到這一點? –

+0

使用NSLocationUsageDescription設置[description here](https://developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html),將在現有對話框中添加註釋。但是,您無法禁用或更改現有警報的措辭(如問)。 –

0

對於用戶隱私的原因,該提示/警報系統生成的,如果你的應用程序使用的核心位置,你無法禁用它。

話雖如此,但是,您可以延遲通過組織您的代碼流在您的應用程序中顯示此警報,以便只在需要時(懶惰初始化)調用位置服務。

apple docs,閱讀筆記下方法 -

+ (BOOL)locationServicesEnabled 

位置服務提示用戶他們第一次嘗試在一個應用程序使用的位置相關的信息,但不提示以後嘗試。如果用戶拒絕使用位置服務,並且嘗試啓動位置更新,則位置管理器會向其委託人報告錯誤。