如何检查我的 ios8 自定义键盘扩展是不是具有开放访问权限?
Posted
技术标签:
【中文标题】如何检查我的 ios8 自定义键盘扩展是不是具有开放访问权限?【英文标题】:How can I check does my ios8 custom keyboard extension have open access?如何检查我的 ios8 自定义键盘扩展是否具有开放访问权限? 【发布时间】:2014-09-26 10:19:57 【问题描述】:在我的 ios 8 键盘扩展中,我想检查用户是否允许我的键盘打开访问权限。但我找不到任何 API。 Swiftkey 和其他自定义键盘以某种方式解决了这个问题
【问题讨论】:
【参考方案1】:我认为这是一种更简单的方法(无需创建容器):
- (BOOL) isOpenAccessGranted
if ([UIPasteboard generalPasteboard])
return YES;
return NO;
【讨论】:
【参考方案2】:没有 API,但如果您启用了应用组访问权限,您可以尝试检查您是否能够读取/写入该文件夹。它应该给你一个权限错误访问未启用。
【讨论】:
【参考方案3】:使用这个,
-(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;
【讨论】:
更多细节:***.com/questions/25472388/…【参考方案4】:iOS10 beta 中更改了粘贴板 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?
我测试了一些应用程序并且运行良好!
【讨论】:
有什么理由反对?如果您能解释一下,如果这里有什么问题会很好.. 太棒了,@Drico【参考方案5】:您可以使用此功能检查您的自定义键盘扩展是否具有开放访问权限:
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 自定义键盘扩展是不是具有开放访问权限?的主要内容,如果未能解决你的问题,请参考以下文章