2016-06-10 5 views
0

Ich habe ein Problem mit InAppBrowser. Ich versuche, Fehler zu fangen, die von der Website kommen könnten, ich bin Laden und ich bin diese durch eine fehlerhafte .htaccess zu simulieren, die einen Fehler 500.Cordova InAppBrowser loaderror Ereignis nicht für Error 500

erzeugt Ich habe den folgenden Code:

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) { 
     ..... 
}); 

Die Website wird geöffnet und alle Ereignisse "Loadstop" und "Loadstart" funktionieren ordnungsgemäß. Wenn ich jedoch absichtlich die Seite einen "Fehler 500" zurückgeben lasse, wird das Ereignis "loaderror" nicht ausgelöst.

Es ist für andere Fehler Feuer - wie wenn es kein Internet auf dem Telefon gibt.

Alle Ideen, warum dies geschieht, werden sehr geschätzt.

+0

Testen Sie auf einem Android-Gerät? – Gandhi

+1

Mit Blick auf InAppBrowser Plugin-Code für Android, es interally Benutzer onReceivedError Methode für die Behandlung 'loaderor' Ereignis. Also habe ich dieses Problem aus der Perspektive der Webansicht betrachtet und bin über diesen Link gestolpert - https://code.google.com/p/android/issues/detail?id=968, in dem steht, dass die onReceivedError-Funktion nicht dazu gedacht ist, HTTP-Fehler abzufangen. Für die HTTP-Fehlerbehandlung müssen wir möglicherweise die 'onReceivedHttpError'-Funktion verwenden, die nicht Teil des Plugins ist. Ich hoffe, es macht Sinn, warum das nicht funktioniert. – Gandhi

+0

@Gandhi Ja, das erklärt es. Wenn Sie Ihren Kommentar als Antwort posten, akzeptiere ich ihn. Danke – DreamWave

Antwort

4

Mit Blick auf InAppBrowser Plugin-Code für Android, es verwendet onReceivedError Methode für die Handhabung loaderror Ereignis. Also habe ich dieses Problem aus der Perspektive der Webansicht betrachtet und bin über diesen Link gestolpert - https://code.google.com/p/android/issues/detail?id=968, der besagt, dass die onReceivedError-Funktion nicht dazu gedacht ist, HTTP-Fehler abzufangen.

Für die HTTP-Fehlerbehandlung müssen wir möglicherweise die Funktion onReceivedHttpError verwenden, die nicht Teil des Plugins ist. Ich hoffe, es macht Sinn, warum das nicht funktioniert.