Android 4.4 KitKat — Webview — перезагрузить веб-страницу, но запомнить местоположение

#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, чтобы запомнить местоположение?