如何检查我的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自定义键盘扩展是否具有开放访问权限?的主要内容,如果未能解决你的问题,请参考以下文章

iOS8 自定义键盘在不请求开放访问的情况下访问用户默认值

自定义键盘应用程序扩展 iOS 8 上的 Siri

如何在iOS8自定义键盘中使用自动更正和快捷列表?

在自定义键盘扩展中检测输入对象视图类型

检查 iOS 8 的自定义键盘中的输入文本是不是为空

我可以为我的应用禁用自定义键盘 (iOS8) 吗?