34

iOS 8.3 より前では、「フル アクセスを許可」がキーボード拡張機能に付与されているかどうかを確認する方法は、コンテナー アプリの次のコードを使用していました。

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

ただし、この人気のある SO 回答スレッドのコメントが指摘しているように、iOS 8.3 以降、アプリはフル アクセスが許可されていなくても共有グループ コンテナーから読み取ることができるため、上記のコードは常に true を返します。ただし、「Allow Full Access」がオンになっている場合にのみ、書き込み許可が付与されます。

上の Apple のドキュメントに基づいて、すべてのペーストボードを一覧表示しようとしましたが、どのペーストボードUIPasteboardがアクセス可能であるかがわかりません。これに関する洞察は大歓迎です。

4

2 に答える 2

2

これが私の現在作業中/デプロイ済みの実装です:

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

- (BOOL)validateKeyboardHasFullAccess {
    return !![UIPasteboard generalPasteboard];
}
于 2015-11-04T16:55:04.653 に答える
1

iOS 8.4 ではUIPasteboard.generalPasteboard()nilフル アクセスが許可されていない場合です。clean and build再度テストする前に、キーボードとコンテナー アプリ + アプリを削除してみてください。うまくいくはずです。

于 2015-07-28T22:20:06.437 に答える