2016-06-10 82 views
0

我有一個InAppBrowser問題。我試圖抓住可能出現從網站我加載錯誤,我被一個錯誤的.htaccess,這會產生錯誤500科爾多瓦InAppBrowser loaderror事件不會觸發錯誤500

模擬這一點,我有以下代碼:

ref = cordova.InAppBrowser.open($openuri, '_blank', 'location=no,toolbar=no,zoom=no,enableviewportscale=no,disallowoverscroll=no'); 
ref.addEventListener("loadstop",function() { 
     ..... 
    }); 
ref.addEventListener("loaderror",function() { 
     alert('Toot'); 
    }); 
ref.addEventListener('loadstart', function(event) { 
     ..... 
}); 

網站正在打開,所有「loadstop」和「loadstart」事件都正常工作。但是,當我故意使頁面返回「錯誤500」時,事件「loaderror」不會觸發。

它會引發其他錯誤 - 比如手機上沒有互聯網。

任何想法,爲什麼發生這種情況是高度讚賞。

+0

你正在Android設備上測試嗎? – Gandhi

+1

查看Android的InAppBrowser插件代碼,它一般用於處理'loaderror'事件的用戶onReceivedError方法。所以我從webview的角度來看這個問題,並偶然發現了這個鏈接 - https://code.google.com/p/android/issues/detail?id=968其中規定onReceivedError函數並不意味着要捕獲HTTP錯誤。對於HTTP錯誤處理,我們可能需要使用不屬於插件一部分的'onReceivedHttpError'函數。希望它有道理,爲什麼這不起作用。 – Gandhi

+0

@Gandhi是的,這解釋了它。如果您發表評論作爲答案,我會接受它。謝謝 – DreamWave

回答

4

查看Android的InAppBrowser插件代碼,它一直使用onReceivedError方法處理loaderror事件。所以我從webview的角度來看待這個問題,並偶然發現了這個鏈接 - https://code.google.com/p/android/issues/detail?id=968,其中指出onReceivedError函數並不意味着要捕獲HTTP錯誤。

對於HTTP錯誤處理,我們可能不得不使用onReceivedHttpError函數,它不是插件的一部分。我希望這是有道理的,爲什麼這不起作用。