有没有一种优雅的方式从iOS下的inappbrowser访问相机?

我目前正在开发Cordova的混合应用程序。 该项目主要是外部网站的webview(使用Cordova inappbrowser插件实现)。 在这个网站上,我希望用户能够使用他们的设备相机拍照并在网站上使用它。 在Android上,我拦截了“loadstart”事件并为特定url启动了相机插件,该工具正如我所希望的那样工作。 然而,在iOS上,相机无法启动,我收到警告
Warning: Attempt to present on whose view is not in the window hierarchy!
在XCode中。
经过一些研究后我发现,这是inappbrowser的预期行为。 关闭inappbrowser以启动相机并再次打开inappbrowser对我来说是不可取的。

问题1:是否可以将相机显示在inappbrowser的顶部?

到目前为止,我的工作方法是使用 ,其工作原理(种类)。 它打开一个对话框,用户可以在“拍照”和“选择文件”之间进行选择,如果他选择“拍照”相机打开,我可以将图片带到网站。

问题2:单击按钮时,是否可以绕过此选择对话框并直接进入相机?

我知道两个修改都必须在本机iOS代码中进行(我从未使用过)。
任何帮助将不胜感激, 谢谢你的时间。

相关问题:

  • 尝试从inappbrowser打开时,Cordova IOS相机插件无法正常工作

更新:

似乎打破相机的电话是:

 __weak CDVCamera* weakSelf = self; ... [weakSelf.viewController presentViewController:cameraPicker animated:YES completion:^{ weakSelf.hasPendingOperation = NO; }]; 

问题:如何在inappbrowser插件上显示相机?

我试图获取rootViewController,但它不起作用:

  • [[[[UIApplication sharedApplication] delegate] window] rootViewController]