2013-07-09 51 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(); 
});