Подтвердить что ты не робот

Как проверить "Разрешить полный доступ" предоставляется с iOS 8.3 * из приложения-контейнера *

До iOS 8.3 способ проверки "Разрешить полный доступ" был предоставлен расширению клавиатуры через следующий код в приложении контейнера:

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

Однако, поскольку комментарии к этому популярному ответу SO указывают, что с iOS 8.3 приложение может читать из общих контейнеров групп, даже если полный доступ не предоставляется, поэтому приведенный выше код всегда возвращает true. Однако разрешение написать предоставляется только в том случае, если включен "Разрешить полный доступ".

Я попробовал листинг всех картотек на основе Apple docs в UIPasteboard, но он не определяет, какие из них доступны, Любые идеи по этому поводу очень ценятся.

4b9b3361

Ответ 1

Здесь моя текущая работа/развернутая реализация:

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

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

Ответ 2

В iOS 8.4 UIPasteboard.generalPasteboard() есть nil, если полный доступ запрещен. Попробуйте удалить приложение для клавиатуры и контейнера + clean and build, перед повторным тестированием. Должен работать нормально.