Android WebView如何在应用关闭时保存显示状态

7
我希望能够在用户关闭我的应用程序时保存WebView的状态,并在用户返回应用程序时将其恢复到与关闭之前完全相同的状态。我希望它可以还原带有表单、在线计算器(存储计算历史记录)或使Javascript对象动态的任何网站。我该怎么做?
以下是我尝试过的一些方法。
我已经尝试使用这里找到的saveState方法,但行为已更改。
请注意,此方法不再存储此WebView的显示数据。
我想能够恢复显示数据。
我已经尝试了这里的saveWebArchive方法,但是当保存和恢复Web Archive版本时,它不会将显示数据放回到与之前完全相同的状态。
我不能使用任何HTML5存储方法或evaluateJavascript来处理此问题,因为我希望能够保存和还原我访问的任何网站的状态。

嗨,我在思考“用户关闭我的应用程序”,这是否意味着应用程序从应用程序管理器(方形或概述按钮)完全关闭?如果是的话,我认为这是不可能的,因为当应用程序关闭时,Webview 也被销毁了。 - Ric17101
你好,“关闭我的应用程序”意味着将应用程序转到后台。因此,当您返回到应用程序时,将调用onResume方法而不是onCreate。因此,请将代码放在OnResume上。 - puspak saha
如何保存/恢复WebView状态?...如果使用Chrome或Puppeteer,您会如何实现?此外,该概念并未考虑表单或访问令牌可能已经在服务器端超时。 - Martin Zeitler
2个回答

0
发送应用程序到后台时,只需加载一次URL即可:
@Override
public void onCreate(Bundle savedInstanceState) {
    if (savedInstanceState == null) {
        webView.loadUrl(defaultUrl);
    }
}

但是在终止应用程序时,恢复功能相当有限。


0
您可以在自定义的 WebView 中使用以下代码:
override fun onWindowVisibilityChanged(visibility: Int) {
        if (visibility != View.GONE) super.onWindowVisibilityChanged(View.VISIBLE)
} 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接