我正在使用cordova 6.0.0为混合移动应用程序工作 .
根据我的要求,我必须在Web视图中打开动态URL . 网址将由api响应提供 .
我在应用程序浏览器插件中使用cordova进行Web查看 .
https://github.com/apache/cordova-plugin-inappbrowser
现在,当用户点击Web视图中打开的页面中的任何链接时,我必须捕获该click事件并找到用户单击的锚标记的href值 .
如果目标网址符合我的条件,我必须在不关闭网页视图的情况下打开相机,以便即使在成功拍摄照片后我也能保持网页视图的状态 .
对于相机功能,我使用的是cordova默认相机插件 .
我在Android中成功完成了这项工作 .
但在IOS的情况下,我无法打开相机 . 正如我已经检查过控制器正在进入相机插件,但它正在给出以下警告
Warning: Attempt to present <CDVCameraPicker: 0x1570d1800> on <MainViewController: 0x1565624a0> whose view is not in the window hierarchy!
我已经检查过很多关于此的帖子,有些人建议使用iframe而不是Web视图 . 但是我无法在动态加载的Iframe中捕获click事件 .
有人可以帮助解决这个问题的解决方案,有什么方法可以按照我的要求来做到这一点 .
提前致谢
1 回答
我最近有同样的问题,并设法解决它 . 您必须打开InaAppBrowser作为子视图以在其上显示摄像头 . 如果InAppBrowser插件,所有修改都发生在CDVInAppBrowser.m中 .
您必须修改CDVInAppBrowser的show方法:
只需删除注释行,然后在注释行后面添加2 . 在CDVInAppBrowser的close方法中,您必须添加:
就在
[self.inAppBrowserViewController close];
之前 .完成后,相机现在在inappbrowser顶部打开并将图像传递给它 .
p.s . :记得删除并添加ios平台以应用更改