ios - 如何检查 "Allow Full Access"自 iOS 8.3 *从容器应用程序*被授予

标签 ios objective-c ios8 ios8-extension ios-keyboard-extension

在 iOS 8.3 之前,检查“允许完全访问”是否被授予键盘扩展的方法是通过容器应用中的以下代码:

- (BOOL)isOpenAccessGranted{
   return [UIPasteboard generalPasteboard];
}

但是,作为对这个流行的 SO 答案的评论 thread指出,自 iOS 8.3 起,即使未授予完全访问权限,应用程序也可以从共享组容器中读取,因此上述代码始终返回 true。但是,只有在打开“允许完全访问”时才会授予写入权限。

我已经尝试列出所有基于 Apple 的 docs 的粘贴板。在 UIPasteboard 上,但它没有描述哪些是可访问的。非常感谢对此有任何见解。

最佳答案

这是我当前工作/部署的实现:

- (void)viewDidAppear:(BOOL)animated {
    NSLog(@"keyboard has full access? %@", ([self validateKeyboardHasFullAccess] ? @"YES" : @"NO"));
}

- (BOOL)validateKeyboardHasFullAccess {
    return !![UIPasteboard generalPasteboard];
}

关于ios - 如何检查 "Allow Full Access"自 iOS 8.3 *从容器应用程序*被授予,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31497443/

相关文章:

ios - 我如何解析 JSON 以将其转换为 Swift 中的对象数组?

ios - 离开 uiviewcontroller 时 Dropbox 上传停止

ios - 使用 AssetsLibrary.h 时出错

ios - 自动布局防止按钮移动

ios - 使用自定义 setter 和计算结构属性的两种方式转换

ios - Objective-C Storyboards Segue - 将数据从目的地传回 sourceViewController

objective-c - 多线程渲染仅在 iOS 13 上崩溃

iphone - iOS 中控制/关闭第 3 方应用程序

ios - 在选择上快速更改文本颜色

swift - Swift 中数组中的字典