cloudkit CKContainer requestApplicationPermission()方法显示一个警报,仅根据文档向用户询问其可发现权限ONCE,并且此方法的任何未来调用都不会再显示警报。
来自CKContainer.requestApplicationPermission()的文档 “当您第一次在任何用户的设备上请求权限时,系统会提示用户授予或拒绝该请求。一旦用户授予或拒绝权限,后续请求相同权限(在相同或不同的设备上)不再提示用户。“
那么,如果用户改变主意会发生什么,我希望我的应用程序询问用户他是否改变了主意并再次显示警报,这怎么可能发生?必须有一种方法,但我找不到任何关于它的文档。
答案 0 :(得分:-1)
首先,检查用户之前是否已拒绝使用以下权限:
CKContainer.statusForApplicationPermission()
如果completionHandler中返回的状态为CKApplicationPermissionStatus.Denied
,则显示UIAlertController,询问用户是否要在设置中启用它。
如果用户说“是”,您可以转到您的应用设置页面,如下所示:
if let settingsURL = NSURL(string: UIApplicationOpenSettingsURLString) {
UIApplication.sharedApplication().openURL(settingsURL)
}