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

时间:2016-08-12 14:16:26

标签: ios cordova camera inappbrowser

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

问题1:是否可以将相机显示在不适当的上方?

到目前为止,我的工作方法是使用<input type="file" accept="image/*" capture="camera">,它有效(有点)。它打开一个对话框,用户可以在“拍照”和“选择文件”之间进行选择,如果他选择“拍照”相机打开,我可以将图片带到网站。

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

我知道两个修改都有发生在原生iOS代码中(我从未使用过)。
任何帮助将不胜感激,谢谢为您的时间。

相关问题:< / p>


更新

似乎打破相机的电话是:

__weak CDVCamera* weakSelf = self;

...

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

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

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

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

0 个答案:

没有答案