如何检查我的ios8自定义键盘扩展是否具有开放访问权限?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检查我的ios8自定义键盘扩展是否具有开放访问权限?相关的知识,希望对你有一定的参考价值。
在我的ios 8键盘扩展中,我想检查用户是否给我的键盘打开访问权限。但我找不到任何API。 Swiftkey和其他自定义键盘以某种方式解决了这个问题
答案
没有API,但如果您启用了应用程序组访问权限,则可以尝试检查是否能够读取/写入该文件夹。它应该给你一个权限错误访问未启用。
另一答案
我认为这是一种更简单的方法(无需创建容器):
- (BOOL) isOpenAccessGranted
{
if ([UIPasteboard generalPasteboard])
return YES;
return NO;
}
另一答案
用这个,
-(BOOL)isOpenAccessGranted
{
NSFileManager *filemanager = [NSFileManager defaultManager];
NSString *containerPath = [[filemanager containerURLForSecurityApplicationGroupIdentifier:@"/***YOUR APP GROUP ID***/"] path];
NSError *err;
[filemanager contentsOfDirectoryAtPath:containerPath error:&err];
if(err != nil)
{
NSLog(@"Full Access: Off");
return NO;
}
NSLog(@"Full Access On");
return YES;
}
另一答案
在iOS10测试版中更改了粘贴板API
迅速:
func isOpenAccessGranted() -> Bool {
let originalString = UIPasteboard.general.string
UIPasteboard.general.string = "TEST"
if UIPasteboard.general.hasStrings {
UIPasteboard.general.string = originalString
return true
}else{
return false
}
}
在这里找到了这个省钱的答案
How to check the "Allow Full Access" is enabled in iOS 8?
我测试了一些应用程序并且完美无缺!
另一答案
您可以使用此功能检查您的自定义键盘扩展是否具有开放访问权限:
func isOpenAccessGranted() -> Bool{
if #available(iOS 10.0, *) {
let originalString = UIPasteboard.general.string
UIPasteboard.general.string = "Sour LeangChhean"
if UIPasteboard.general.hasStrings {
UIPasteboard.general.string = originalString ?? ""
return true
}else{
UIPasteboard.general.string = ""
return false
}
} else {
// Fallback on earlier versions
if UIPasteboard.general.isKind(of: UIPasteboard.self) {
return true
}else{
return false
}
}
}
以上是关于如何检查我的ios8自定义键盘扩展是否具有开放访问权限?的主要内容,如果未能解决你的问题,请参考以下文章