2013-07-09 218 views
1

是否有解决问题的时候在加载页面崩溃之前关闭inAppBrowser ios应用程序?InAppBrowser在科尔多瓦2.7.0

科尔多瓦版本2.7.0

的inAppBrowser导致iOS应用崩溃(关闭而没有警告)如果“完成”按钮被点击之内的第二或两个开口(当然不是每一次的 - 但3出通常4 - 尝试iphone和ipad)。

我们尝试在try/catch块中包装所有相关的javascript,并且它们没有被解雇。我们还尝试在inAppBrowser错误事件中注册事件监听器(也未触发)。

它看起来像一个导致ios崩溃的PhoneGapBuild问题。

所有和任何帮助/反馈非常感谢。

回答

0

我刚刚向Cordova报告了同样的问题,https://issues.apache.org/jira/browse/CB-4995并提出了可能的解决方案。这是我们用于Cordova 2.8.15 iOS应用程序的解决方案。

你可以在上面的链接看到更多的细节,但总的来说,飞机坠毁是因为self.inAppBrowserViewController在CDVInAppBrowser.m webViewDidFinishLoad下是零,如果webViewDidFinishLoad被称为有点晚了,由于浏览器的快速关闭,这就要求browserExit事先删除self.inAppBrowserViewController。我们解决了该问题由零检查中webViewDidFinishLoad self.inAppBrowserViewController并使用这个自定义修补CDVInAppBrowser.m

+0

科尔多瓦问题是正式固定为CB-4995,并且它可以在[https://git-wip-us.apache.org/repos/asf?p=cordova-plugin-inappbrowser被看作的.git; A =提交; H = aa81c326](https://git-wip-us.apache.org/repos/asf?p=cordova-plugin-inappbrowser.git;a=commit;h=aa81c326)。 – hyong

0

有一个在http://community.phonegap.com/nitobi/topics/inappbrowser_causes_ios_apps_to_crash_on_close-15h8ot这为我工作描述的解决方案。

它涉及到添加一个事件监听器到“退出”事件,并且当这个事件被触发时调用close()方法。

我不知道这是为什么起作用,但它对我有用。

var inAppBrowser = window.open("http://google.com","_blank"); 
inAppBrowser.addEventListener("exit", function(event) { 
    inAppBrowser.close(); 
});