2015-07-19 31 views
31

获得批准在iOS 8.3之前,检查“允许完全访问”是否授予键盘扩展的方法是通过以下代码容器应用如何检查“允许完全访问”自iOS 8.3 *从容器应用程序*

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

然而,由于在这个流行的意见,以便回答thread点出来,因为iOS 8.3版本,应用程序可以从共享组容器的读取,即使完全不授予权限,所以总是上面的代码返回true。但是,只有在“允许完全访问”处于打开状态时,才会授予写入权限。

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

+0

一般纸板应便于所有读和/或写。共享容器是另一回事。您是否试图让应用程序写入可通过键盘使用的粘贴板?你能解释一下你想使用它的场景吗? – Omar

+0

请看看这个答案: [http://stackoverflow.com/a/26088674/3317354][1] [1]:http://stackoverflow.com/a/26088674/3317354 – teamnorge

+0

嗨@Omar - 是的,的确,我试图测试共享容器是否可写(在iOS键盘上授予“完全访问权限”允许它是可写和可读的,因此可以从容器应用程序读取数据基于键盘保存的内容)。以前'generalPastboard'就足够了。 – daspianist

回答

1

在iOS 8.4上,如果不允许完全访问,UIPasteboard.generalPasteboard()nil。 尝试删除键盘和容器应用程序+ clean and build应用程序,然后再次测试。应该工作正常。

+0

我试过上面的代码,但即使“完全访问”没有给出它返回是。 –

2

这是我目前的工作/部署实施:

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

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

感谢您的输入!这在从键盘内部检查完整访问时很有效,但我想知道容器应用程序是否也有这样做的方法。 – daspianist

相关问题