1

在加载页面之前关闭inAppBrowser时是否有解决问题的方法使ios应用程序崩溃?

科尔多瓦 2.7.0 版

如果在打开后的一两秒内单击“完成”按钮,inAppBrowser 会导致 ios 应用程序崩溃(在没有警告的情况下关闭)(当然不是每次都 - 但通常是 4 次尝试中的 3 次 - 在 iphone 和 ipad 上)。

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

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

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

4

2 回答 2

0

http://community.phonegap.com/nitobi/topics/inappbrowser_causes_ios_apps_to_crash_on_close-15h8ot中描述了一个对我有用的解决方案。

它涉及向“exit”事件添加一个事件侦听器,并在触发此事件时调用 close() 方法。

我不知道为什么会这样,但它对我有用。

var inAppBrowser = window.open("http://google.com","_blank");
inAppBrowser.addEventListener("exit", function(event) {
    inAppBrowser.close();
});
于 2013-10-10T01:11:02.980 回答
0

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

您可以在上面的链接中看到更多详细信息,但总而言之,崩溃的发生是因为 CDVInAppBrowser.m 中 webViewDidFinishLoad 下的 self.inAppBrowserViewController 为零,如果由于浏览器快速关闭而调用 webViewDidFinishLoad 为时已晚,它会调用 browserExit 来消除 self .inAppBrowserViewController 事先。我们通过在 webViewDidFinishLoad 中检查 self.inAppBrowserViewController 并使用此自定义修补 CDVInAppBrowser.m 来解决此问题

于 2013-10-03T22:49:13.220 回答