2016-07-23 129 views
1

cloudkit CKContainer requestApplicationPermission()方法顯示一個警報,僅在基於文檔的情況下詢問用戶的發現權限,此方法的任何未來調用都不會再顯示警報。如何在第一次拒絕用戶後重新詢問用戶的發現權限?

從文檔:CKContainer.requestApplicationPermission() 「第一次請求對用戶的任何設備的權限,系統會提示用戶授予或拒絕該請求一旦用戶授予或拒絕權限,隨後請求相同。許可(在相同或不同的設備上)不會再次提示用戶。「

因此,如果用戶改變了主意,會發生什麼情況,並且我希望我的應用程序詢問用戶他是否改變了主意並再次顯示警告,怎麼會發生這種情況?必須有一種方法,但我可以找到任何關於它的文檔。

+3

沒有辦法,你必須告訴用戶更改其設置。 – jonrsharpe

+0

嗨喬恩,所以如果我的應用程序要求用戶改變他們的設置,他們如何做到這一點?不知道你是否說他們可以去iphone設置並手動執行?你能詳細說明一下嗎? – malena

回答

-1

首先,檢查用戶是否先前拒絕許可使用:

CKContainer.statusForApplicationPermission() 

如果completionHandler返回的狀態是CKApplicationPermissionStatus.Denied,顯示UIAlertController詢問用戶是否要啓用它的設置。

如果用戶說是的,你可以去你的應用程序設置頁面是這樣的:

if let settingsURL = NSURL(string: UIApplicationOpenSettingsURLString) { 
    UIApplication.sharedApplication().openURL(settingsURL) 
} 
+0

如果您使用的是CloudKit(特別是開發容器),則在CloudKit中維護髮現權限。目前,無法從iOS重置此設置。您需要重置您的開發環境並清除所有數據。下次運行該應用程序時,系統將提示用戶。蘋果真的需要解決這個問題,並允許用戶在iOS中更新此響應。 – Wizkid

相關問題