#android #webview #hyperlink #android-4.4-kitkat #webviewclient
#Android #веб-просмотр #гиперссылка #android-4.4-kitkat #webviewclient
Вопрос:
Android 4.4 Webview — Перезагрузить заново созданную веб-страницу, но запомнить местоположение
У меня есть приложение, которое создает большой HTML-файл, содержащий много текста с некоторыми гиперссылками, которые при нажатии выбираются WebViewClient и запускают некоторый Java-код, который снова воссоздает большой html, возможно, с небольшим изменением, и помещает его обратно в тот же webview.
В MainActivity создайте строку html, а затем поместите в webview…
buf.append("lots of text before... <a href="w" id "">something here</a> lots of text after ...");
...
WebView webView;
webView = (WebView) findViewById(R.id.webView1);
webView.loadDataWithBaseURL(null,buf.toString, "text/html", "utf-8",null);
В WebViewClient выберите гиперссылки, щелкнутые
public class TestWebViewClient extends WebViewClient {
TestActivity testActivity;
public TestWebViewClient(TestActivity main) {
this.testActivity = main;
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
String newUrl = url.substring(1,url.length());
if (url.substring(0,1).equals("w")) {
mainActivity.doSomethingAndReCreateHtml(newUrl);
}
}
}
До Android 4.4 и webview на основе Crome webview запоминал местоположение html-кода в webview (как далеко вниз была прокручена HTML-страница), поэтому, когда была нажата ссылка в html, и html был воссоздан и перезагружен, webview запоминал местоположение и представлял воссозданный HTML-код в том же месте, что и при нажатии на гиперссылку — почти как будто ничего не произошло.
Но теперь, в Android 4.4 и Crome webview, при нажатии на ссылку и воссоздании и перезагрузке HTML-кода webview НЕ запоминает местоположение и представляет начало HTML-кода без прокрутки вниз до места, где ссылка была нажата в первую очередь.
Есть идеи, что делать в Crome webview, чтобы запомнить местоположение?