【问题标题】:Cordova IOS camera plugin not working when trying to open from inappbrowser尝试从 inappbrowser 打开时,Cordova IOS 相机插件不起作用
【发布时间】:2016-09-10 04:07:16
【问题描述】:

我正在使用cordova 6.0.0 开发一个混合移动应用程序。

根据我的要求,我必须在 web 视图中打开动态 url。 url 将由 api 响应提供。

我正在使用应用浏览器插件中的 cordova 进行网页视图。

https://github.com/apache/cordova-plugin-inappbrowser

现在,当用户点击在 web 视图中打开的页面中的任何链接时,我必须捕捉该点击事件并找到用户点击的锚标记的 href 值。

如果目标网址符合我的条件,我必须在不关闭网页视图的情况下打开相机,这样即使在拍照成功后我也可以保持网页视图的状态。

对于相机功能,我使用的是 cordova 默认相机插件。

我已经在 Android 中成功地做到了。

但在 IOS 的情况下,我无法打开相机。正如我检查过的控制在相机插件内部,但它给出了以下警告

Warning: Attempt to present <CDVCameraPicker: 0x1570d1800> on <MainViewController: 0x1565624a0> whose view is not in the window hierarchy!

我查看了很多关于此的帖子,有些人建议使用 iframe 而不是 web 视图。但我无法在动态加载的 Iframe 中捕捉到点击事件。

有人可以帮忙解决这个问题吗,有什么办法可以按照我的要求做到这一点。

提前致谢

【问题讨论】:

  • 有同样的警告。尝试从 jQuery 单击事件处理程序中调用 navigator.camera。

标签: jquery cordova cordova-plugins inappbrowser


【解决方案1】:

我最近遇到了同样的问题并设法解决了。您必须将 InaAppBrowser 作为子视图打开才能在其顶部显示相机。如果 InAppBrowser 插件,所有修改都在 CDVInAppBrowser.m 中进行。

你要修改CDVInAppBrowser的show方法:

dispatch_async(dispatch_get_main_queue(), ^{
    if (weakSelf.inAppBrowserViewController != nil) {
        //[weakSelf.viewController presentViewController:nav animated:YES completion:nil];
        self.inAppBrowserViewController.view.frame = CGRectMake(0,20,self.inAppBrowserViewController.view.frame.size.width,self.inAppBrowserViewController.view.frame.size.height-20);            
        [self.viewController.view addSubview:self.inAppBrowserViewController.view];
    }
});

只需删除注释行并在注释行后面添加 2。在 CDVInAppBrowser 的 close 方法中,您必须添加:

UIView *lastView;
for(UIView *subview in [self.viewController.view subviews]) {
    lastView = subview;
}
[lastView removeFromSuperview];

就在[self.inAppBrowserViewController close];之前。
完成后,相机现在在 inappbrowser 顶部打开并将图像传递给它。

p.s.:记得删除和添加 ios 平台以应用更改

【讨论】:

  • 打开网址的代码在哪里,我无法打开网址,也没有调用任何 CDVInAppBrowser 方法
猜你喜欢
  • 2016-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多