WebViewClient.onPageStarted( ) appelé deux fois lors de la spécification inexistante URL via WebView.loadURL()
Voici mon 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" );
}
}
Résultats dans les journaux suivants:
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/
Remarque d'un autre appel à onPageStarted( ) ... personne Ne sait la raison derrière tout cela?
cheers!
- J'ai le même problème: j'ai essayé de webView.loadUrl("loadSomething"), et de l'appeler deux fois onPageStarted et onPageFinished... Avez-vous découvert ce qu'était le problème?
Vous devez vous connecter pour publier un commentaire.
J'ai rencontré le même problème pour tester mon appli sur un AVD avec l'API 7 (pas sûr si cela est pertinent, mais en tout cas).
J'ai remarqué que la séquence exacte des rappels est la suivante:
Donc je suppose que le chargement de l'Android "page Web non disponible" à la page est le déclenchement de la deuxième onPageStarted appel.
J'ai eu du mal avec cela, mais je pense que j'ai travaillé autour d'elle. Fondamentalement, j'ai mis un drapeau d'erreur de garder le client de tout traitement de plus de rappels. Le drapeau est remis quand j'ai appeler une méthode de l'activité pour essayer de le charger à nouveau. Voici un exemple de code à partir d'un gist j'ai créé https://gist.github.com/museofwater/6373048
Dans l'API android, vous pouvez trouver la note:
Ce qui suggère qu'il pourrait être causée par un "iframe" dans la page web.