【问题标题】:How to get, save, and reuse scroll position in a WebView in android如何在android的WebView中获取、保存和重用滚动位置
【发布时间】:2020-01-13 12:07:01
【问题描述】:

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

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

【问题讨论】:

    标签: android android-studio android-layout android-webview


    【解决方案1】:

    您可以在 Activity onSaveInstanceState() 上重载 Activity 并在其中调用 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()方法中

    【讨论】:

    • 谢谢!但它是一个更复杂的功能。我使用 Webview 作为框架来显示文本。每本书的文本都显示在相同的活动中,所以我从每本书的 json 获取数据。当用户退出阅读一本书时,我想保存该书的阅读状态,而不仅仅是 webView,甚至在关闭应用程序后,我希望在重新打开时再次保存和检索数据。我正在考虑将当前状态保存在远程服务器上。你能告诉我怎样才能做到这一点。我想保存每本书的最后状态并将其存储在远程服务器上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 2017-08-01
    • 2016-11-29
    • 2022-11-27
    • 1970-01-01
    相关资源
    最近更新 更多