WebViewClient.onPageStarted( ) zwei mal aufgerufen, wenn die Angabe von nicht existierenden URL per WebView.loadURL()
Hier ist mein code
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView webView = (WebView)findViewById(R.id.webView);
//Assign webclient.
webView.setWebViewClient(new WebViewClient( ) {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.d("TAG", url);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Log.d("TAG", "failed: " + failingUrl + ", error code: " + errorCode + " [" + description + "]");
}
});
webView.loadUrl("http://m.vooglemoogle.com" );
}
}
Ergebnisse in den folgenden log:
03-29 13:40:27.005: DEBUG/TAG(10948): http://m.vooglemoogle.com/
03-29 13:40:27.599: DEBUG/TAG(10948): failed: http://m.vooglemoogle.com/, error code: -2[The URL could not be found.]
03-29 13:40:27.607: DEBUG/TAG(10948): http://m.vooglemoogle.com/
Beachten Sie einen weiteren Anruf zu onPageStarted( ) ... kennt jemand den Grund dafür?
prost!
InformationsquelleAutor der Frage Dr. Benedict Porkins | 2011-03-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem beim testen meiner app auf einem AVD mit API 7 (nicht sicher, ob dies relevant ist aber in jedem Fall).
Bemerkte ich, dass die genaue Reihenfolge der Rückrufe ist die folgende:
Also ich denke, die Beladung des Android - "Webseite nicht verfügbar" - Seite ist die Auslösung der zweiten onPageStarted nennen.
InformationsquelleAutor der Antwort THelper
Ich kämpfte mit diesem als gut, aber ich glaube, ich habe um ihn herum gearbeitet. Grundsätzlich setze ich ein flag auf Fehler, um die client-von der Verarbeitung mehr Rückrufe. Das flag wird zurückgesetzt, wenn ich eine Methode aufrufen in der Aktivität zu versuchen die Last wieder. Hier finden Sie einige Beispiel-code aus einer Kernaussage, die ich erstellt https://gist.github.com/museofwater/6373048
InformationsquelleAutor der Antwort museofwater
In der android-API, finden Sie den Hinweis:
Was darauf hindeutet, dass es könnte werden verursacht durch "iframes" in der web-Seite.
InformationsquelleAutor der Antwort oksharp