保留和还原WebView内容

时间:2019-07-15 13:29:09

标签: android kotlin webview

我有一个网站(应用程序),其中包含很多javascript(注意:我可以将js命令发送到该网站中以打开任何视图)。该站点打开时间很长(解析,读取配置等需要20到30秒)。

我的应用程序在应用程序的不同部分具有许多WebView。例如-我具有100多个项目的listview,通过单击该项目应使用WebView(带有Web应用程序)打开新片段。

即我不想每次创建WebView时都重新打开该网站,这需要很长时间,我想一次打开该网站(!)并通过JS API使用它。

我认为解决方案应该是这样的: 1.当应用程序启动时,我应该在隐藏的Web视图中打开网站 2.存储Webview内容以备将来使用 3.用新的webview打开新片段,并插入存储在step2内容中 4.将JS命令发送到打开的网站

但是有一个问题:什么是存储完整的Webview内容以供重新使用的最佳方法?

我尝试过:

首先-应该从缓存中打开站点

web_view.settings.javaScriptEnabled = true
web_view.settings.domStorageEnabled = true
web_view.settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORK

并将每个应用程序的内容保持为单例(例如)

val bundle = Bundle()
web_view.saveState(bundle)
mySingleton.myStateHolder = bundle

并在需要时将其还原

web_view.restoreState(bundle)

//send js command

太好了。但我期望: 1.缓存了webview状态,其中包含当前状态的完整内容,包括js和图像 2.必须保存和还原webview,并且没有任何错误(例如,网站未完全加载) 3.此解决方案必须可靠(!)。

我不确定这三点内容

无论如何,我可以尝试为每个应用程序使用一个webview,但是我认为这是非常糟糕的解决方案。纠正我,如果我错了。

这种情况下最好的方法是什么?

0 个答案:

没有答案