2014-09-26 5 views
5

В моем расширении клавиатуры ios 8 я хочу проверить, дал ли пользователь доступ к открытой клавиатуре или нет. Но я не мог найти API. Swiftkey и другие пользовательские клавиатуры как-то решают эту проблемуКак я могу проверить, имеет ли пользовательское расширение клавиатуры ios8 открытый доступ?

ответ

3

Нет API, но если у вас включен доступ к группе приложений, вы можете попробовать проверить, можете ли вы читать или записывать в эту папку. Он должен дать вам доступ к разрешениям доступа не включен.

2

Используйте это,

-(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; 
} 
+0

еще несколько деталей: http://stackoverflow.com/questions/25472388/how-to-check-the -allow-full-access-is-enabled-in-ios-8 – fisch2

5

Я думаю, что это более простой способ (нет необходимости создать контейнер):

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

    return NO; 
} 
0

Pasteboard API изменен в iOS10 бета

Swift:

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?

Я тестировал несколько приложений и работает отлично!

+0

любая причина для downvote? если что-то не так, здесь было бы хорошо, если бы вы могли объяснить .. –

+0

Кажется, для меня работает :) – Drico

+0

awesome, @Drico –

0

Вы можете использовать эту функцию, чтобы проверить ваше расширение пользовательской клавиатуры имеет открытый доступ или нет:

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 
     } 
    } 
}