По какой-то причине onPageFinished увольняется до того, как WebView завершил загрузку - я не могу понять, почему...
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");
}
}
Хорошо, похоже, что это не исправлено. Я думаю, что при загрузке страницы происходит состояние гонки, но не может получить воспроизводимое поведение.
Я сохраняю HTML-содержимое веб-страницы в базе данных SQLite для просмотра в автономном режиме. Я перезагружаю содержимое в WebView с помощью:
webView.loadDataWithBaseURL("fake://fake.com/", htmlBody, "text/html", "utf-8", null);
Похоже, что иногда, когда WebView загружает, он корректно запускает метод WebViewClient.onPageFinished(), а в других случаях - нет. Иногда он срабатывает до того, как страница закончила загрузку, создавая contentHeight 0 и игнорируя любые вызовы scrollTo.
У кого-нибудь есть опыт?