2015-10-30 24 views
0

我正在尝试使用共享扩展上的相机拍摄图像。有可能吗? 目前,在我的主应用程序中,我这样写。ios共享扩展相机

self.pickerController = [[UIImagePickerController alloc] init]; 
[self.pickerController setSourceType:UIImagePickerControllerSourceTypeCamera]; 
[self.pickerController setDelegate:self.delegate]; 
self.pickerController.showsCameraControls = NO; 

//In main VC, I write like this 
[self presentViewController:[ImageTakingHelper sharedInstance].pickerController animated:YES completion:nil]; 

这是在我的主要应用程序中,但在我的共享扩展名,它显示相机视图黑屏。我该怎么办?

回答

2

你不能这样做。请记住,您的共享附加信息正在其他人的应用中运行。它只能在那里做很少的事情,而使用相机不是其中之一。 (即使您可以这样做,他们的应用程序可能也没有使用相机的权限。)另外,您的共享扩展程序不拥有该屏幕,因此无法显示图像选择器。放弃你的计划,想一些别的事情。更逼真的东西。

+0

虽然此答案的相机访问方面是正确的,但可以在其他应用程序的上下文中使用UIImagePickerController访问照片。当我在iOS 11上进行测试时,它会在扩展程序的应用程序的上下文中显示图像选择器并显示安全警报。所以看起来权限是从扩展的父项继承的。当在不具有照片访问权限的应用中呈现共享扩展时,这甚至可以工作。 –