如何在第一次拒绝用户后重新询问用户的可发现性权限?

时间:2016-07-23 23:49:36

标签: swift alert cloudkit discoverability

cloudkit CKContainer requestApplicationPermission()方法显示一个警报,仅根据文档向用户询问其可发现权限ONCE,并且此方法的任何未来调用都不会再显示警报。

来自CKContainer.requestApplicationPermission()的文档 “当您第一次在任何用户的设备上请求权限时,系统会提示用户授予或拒绝该请求。一旦用户授予或拒绝权限,后续请求相同权限(在相同或不同的设备上)不再提示用户。“

那么,如果用户改变主意会发生什么,我希望我的应用程序询问用户他是否改变了主意并再次显示警报,这怎么可能发生?必须有一种方法,但我找不到任何关于它的文档。

1 个答案:

答案 0 :(得分:-1)

首先,检查用户之前是否已拒绝使用以下权限:

CKContainer.statusForApplicationPermission()

如果completionHandler中返回的状态为CKApplicationPermissionStatus.Denied,则显示UIAlertController,询问用户是否要在设置中启用它。

如果用户说“是”,您可以转到您的应用设置页面,如下所示:

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