首页 > 解决方案 > 如何在android的WebView中获取、保存和重用滚动位置

问题描述

我正在制作一个电子书阅读器应用程序。我正在使用 WebView 来显示来自 JSON 的 HTML 格式数据。

如果用户正在阅读一本书并在两者之间退出应用程序,我想获取文本的位置,以便下次用户继续阅读这本书时,它会从他上次离开的位置打开。我查了很多问题,但没有得到任何相关的答案。

标签: androidandroid-studioandroid-layoutandroid-webview

解决方案


您可以执行此覆盖 Activity onSaveInstanceState() 并在其中调用 webView.saveState()

@Override
protected void onSaveInstanceState(Bundle outState) {
    webView.saveState(outState);
    super.onSaveInstanceState(outState); 
}

然后打电话

  WebView webview = (WebView)findViewById(R.id.webview);
   if (savedInstanceState != null){
      webview.restoreState(savedInstanceState);
    }
   else {
      webview.loadUrl(url)
    }

在 Activity onCreate() 方法中


推荐阅读