使用输入类型文件时,InAppBrowser在iOS 8.1上崩溃

时间:2014-11-05 15:10:33

标签: cordova ios8 inappbrowser

我遇到了https://issues.apache.org/jira/browse/CB-7679所述的问题。

我有一个PhoneGap应用程序,可以打开一个<input type="file" accept="image/*">的InAppBrowser窗口。只要我点击&#34;拍照&#34;或&#34;选择现有&#34;窗口关闭,我收到以下错误信息:

Warning: Attempt to present
<UIImagePickerController: 0x137001c00> on <CDVInAppBrowserNavigationController: 0x136d2ed20>
whose view is not in the window hierarchy!

相同的代码适用于iOS 7.我使用的版本如下:

  • iOS:8.1
  • PhoneGap:3.6.0
  • InAppBrowser:0.5.3

他们处理https://github.com/apache/cordova-plugin-inappbrowser/blob/master/src/ios/CDVInAppBrowser.m中的视图/控制器/某些东西的方式有什么用吗? 查看插件代码,我可以尝试一些解决方法吗?

我并不是真的了解Objective-C的方法,但是我已经尝试了类似非PhoneGap相关iOS问题的一些解决方案而没有任何运气。

2 个答案:

答案 0 :(得分:1)

经过一些试验和错误并阅读类似的问题后,我终于在https://stackoverflow.com/a/26238123/467650为我找到了解决方案。

诀窍是覆盖CDVInAppBrowserNavigationController&#39; dismissViewControllerAnimated

-(void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion
{
    if ( self.presentedViewController)
    {
        [super dismissViewControllerAnimated:flag completion:completion];
    }
}

Apache Cordova的问题跟踪器问题:https://issues.apache.org/jira/browse/CB-7679

答案 1 :(得分:0)

此修复程序适用于iOS 8.1(12B411)的iPhone,但不适用于iOS 8.1(12B410)的iPad mini视网膜 iPad从一开始就显示出不同的行为,整个应用程序崩溃而不仅仅是InAppBrowser窗口意外关闭