如何在iOS 10中启用“允许完全访问”?

时间:2016-09-09 18:20:26

标签: ios ios10 custom-keyboard ios-extensions

如何在iOS 10中启用“允许完全访问”?

此方法在iOS 10中无效

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

3 个答案:

答案 0 :(得分:2)

这是一个客观的c版

var captcha="<?php echo $_SESSION['final']; ?>";

答案 1 :(得分:1)

User @ user979686在以下帖子中发布了一个解决方案,但我未经过测试

https://stackoverflow.com/a/38903406/4792451

为清晰起见,请在此处发布代码。

let originalString = UIPasteboard.general.string
UIPasteboard.general.string = "TEST"
if UIPasteboard.general.hasStrings
{
    UIPasteboard.general.string = originalString
    hasFullAccess = true
}
else
{
     hasFullAccess = false
}

答案 2 :(得分:1)

我今天一直在测试它,看起来您不必在粘贴板上设置一些内容来验证您是否有权访问。您需要做的就是测试粘贴板上是否有东西。当然,如果粘贴板恰好是完全空的,那么它不是一个详尽的测试,因此在这种情况下你需要设置一些东西,但是你已经排除了被替换的东西。这是我想出来的

func checkFullAccess() -> Bool
{
    if #available(iOSApplicationExtension 10.0, *) {
        let pasty = UIPasteboard.general
        if pasty.hasURLs || pasty.hasColors || pasty.hasStrings || pasty.hasImages {
            return true
        } else {
            pasty.string = "TEST"
            if pasty.hasStrings {
                pasty.string = ""
                return true
            }
        }
    } else {
        // Fallback on earlier versions
        var clippy : UIPasteboard?
        clippy = UIPasteboard.general
        return clippy != nil
    }
    return false
}

在我的测试中,我发现所有检查(hasString,hasImages等)都会返回false,即使关闭了完全访问权限的粘贴板上的内容也是如此。如果它们都返回false,那么它可能真的是空的,所以你尝试在那种情况下设置一些东西。如果它不是空的,那么你没有访问权限,你将不会更换任何东西,如果它是空的并且你有访问权限,那么文本将被放置在那里,你可以将它返回到之前的状态。

HTH, 麦克