如何让 webview 在 html 内容改变时自动刷新它的缓存?

How to make webview refresh its cache automately when html content has changed?

在我的 android 应用程序中,我设置了

webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

为 webview 启用缓存。问题是,当网页内容改变时(我不知道),它仍然使用旧的缓存内容。 如何在不使用缓存的情况下,在更改在线网页内容时自动重新缓存内容?

如有任何建议,我们将不胜感激。

我相信您无法确定网页内容是否已更改。

但是,当您启用对 webview 的缓存时,它会自动为 webview 缓存提供一个过期时间,这意味着,如果 webView 缓存过期,它将再次加载网页。如果您使用 WebSetting.LOAD_DEFAULT

这是可能的

如果您觉得 html 页面的内容可能会更频繁地更改,那么您不应该使用 WebSetting.LOAD_CACHE_ELSE_NETWORK,因为根据文档:

public static final int LOAD_CACHE_ELSE_NETWORK

Use cached resources when they are available, even if they have expired. Otherwise load resources from the network. 

这将加载 html 页面的缓存版本,即使它已过期。

有方法可以检查服务器上的内容是否已更改。 尝试 FCM。在每个内容上提交向每个应用程序发送通知。 然后在收到消息的方法中清除您的 webview 缓存。 以这种方式,只要服务器上的内容发生变化,用户就会看到更新后的内容。 我正在使用这种方法,对我来说效果很好。