從用戶請求位置的權限,當我使用的時候,我有一個問題iOS11我info.plist中包含位置權限問題11的iOS和iOS 10
<key>NSLocationWhenInUseUsageDescription</key>
<string>When in use permissions</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>always permissions</string>
<key>NSLocationAlwaysAndWhenInUsageDescription</key>
<string>Always and in usage permissions</string>
我有兩個映射一個客戶和其他員工。對於員工而言,我需要知道使用
locationManager.requestAlwaysAuthorization()
對於客戶我只需要同時位置,即使應用程序沒有運行或者轉到後臺(簽約時,他們能夠將其關閉),它們的位置,並要求允許該應用程序正在使用中,並要求使用
locationManager.requestWhenInUseAuthorization()
在iOS系統11這只是請求允許在使用的時候,從來沒有在總的權限的權限。
在iOS 10中它具有正確的行爲。
我想要的行爲如下: 當他們是客戶(未登錄)時,它只會要求在使用時的權限。如果他們登錄(員工),即使在不使用時也請求位置。
如果任何人都可以闡明我錯過/做錯了什麼,將不勝感激。
需要注意的是,如果我刪除權限NSLocationAlwaysUsageDescription
iOS10和iOS11有同樣的問題不總是請求權限。
稍微澄清一點。 我已經實現了didChangeAuthorization委託函數,並且當用戶允許來自調用requestWhenInUseAuthorization()
的警報的權限時被調用,但是當我在位置管理器上調用requestWhenInUseAuthorization()
函數時,委託方法未被調用,就好像它從不接收該調用並且沒有提示對話框顯示給用戶。
您是在真實設備上測試嗎?你是否在位置更新位置管理器委託方法 –
是測試在兩個真實設備上測試iPhone 5運行iOS 10.3.3和iPhone 6運行iOS 11.我有位置管理器委託函數didChangeAuthorization和didUpdateLocations日誌。位置正在被調用(當在前臺),並且當我在請求使用權限時請求更改授權,但並不總是使用權限。 –
看看這個答案https://stackoverflow.com/a/46339284/3024579 – Alok