2014-12-08 3 views
3

Я экспериментирую с попыткой иметь встроенную камеру в пользовательском расширении клавиатуры iOS8 с включенным полным доступом. Все работает так, как я ожидал бы, кроме того, что встроенное представление UIImagePickerController всегда черное, за исключением элементов управления наложением. Всплывающие дисплеи «Это приложение будет хотеть получить доступ к вашей камере», и доступ определен определенно (трижды проверен).iOS8 UIImagePickerController в пользовательском расширении клавиатуры

В XCode [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] возвращает true, а интерфейс UIImagePickerController, кроме самой камеры, отображается правильно (например, элементы управления наложением камеры).

Единственная ошибка/предупреждение я получаю от XCode является следующее:

мгновенных снимков вид, что не было вынесено результаты в пустой снимок. Убедитесь, что ваше представление было просмотрено как минимум один раз перед моментальным снимком или снимком после обновлений экрана.

Я попытался добавить таймауты к инициализации камеры, поскольку предложили несколько других потоков stackoverflow, но ничего не исправляет это предупреждение или проблему с черным экраном.

- (void)viewDidAppear:(BOOL)animated 
{ 
    [self performSelector:@selector(loadCamera) withObject:nil afterDelay:0.3]; 
} 

- (void)loadCamera 
{ 
self._picker = [[UIImagePickerController alloc] init]; 

self._picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
self._picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto; 
self._picker.cameraDevice = UIImagePickerControllerCameraDeviceRear; 
self._picker.allowsEditing = NO; 
self._picker.showsCameraControls = YES; 
self._picker.view.userInteractionEnabled = YES; 

self._picker.delegate = self; 

self._picker.view.frame = self.view.bounds; 
[self.view addSubview:self._picker.view]; 
[self._picker didMoveToParentViewController:self]; 
} 

Я также попытался заменить последние 3 строки со следующим с тем же результатом:

[self presentViewController:self._picker animated:YES completion:^{ 
    NSLog(@"completed"); 
}]; 

Кто-нибудь знает, если это возможно встроить UIImagePickerController внутри собственного расширения клавиатуры iOS8, и если да, то что я могу делать неправильно?

ответ

2

По-видимому, доступ к камере или микрофону невозможен в расширениях.

См. Дублируемую тему здесь со ссылкой на документ Apple: iOS Custom Keyboard - camera not working.

Смежные вопросы