Pour une raison quelconque le onPageFinished tire avant la fin du chargement WebView - Je ne peux pas comprendre pourquoi ...onPageFinished pas tirer correctement lors du rendu page Web
public class WebViewClientTest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final WebView webview = (WebView) findViewById(R.id.webview);
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(webview, url);
webview.scrollTo(0, 500);
}
});
webview.loadUrl("http://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=lala");
}
}
OK, il semble bien comme ceci n'est pas fixé. Je pense qu'il y a une condition de course en cours lors du chargement de la page, mais ne peut pas obtenir un comportement reproductible.
Je stocke le contenu HTML d'une page Web dans une base de données SQLite pour l'afficher hors connexion. Je recharger le contenu dans le WebView avec:
webView.loadDataWithBaseURL("fake://fake.com/", htmlBody, "text/html", "utf-8", null);
Il semble que, parfois, lorsque la charge WebView il se déclenche correctement la méthode WebViewClient.onPageFinished(), et d'autres fois non. Parfois, il semble se déclencher avant la fin du chargement de la page, produisant un contentHeight de 0 et ignorant les appels scrollTo.
Quelqu'un a-t-il de l'expérience?
Parfait - merci! Je veux juste ajouter que cette onNewPicture se déclenche même après qu'un événement de défilement soit terminé, donc j'ai dû coder autour de cela, mais ce qui précède fonctionne parfaitement. – DaBeeeenster
sauf que cela est maintenant obsolète (assistant de la tablette - ciel) :( Donc j'utilise un appel javascript qui dépasse WebChromeClient onProgressChanged() en termes de temps de retour ... Il suffit de faire attention au Thread que vous utilisez quand vous obtenez le retour (j'utilise le WebView's Handler avec un appel différé) - tout cela étant dit, je vais voir comment WebChromeClient.onProgressChanged() effectue – Dan
est-il un meilleur moyen de le faire? –