如何让 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 缓存。
以这种方式,只要服务器上的内容发生变化,用户就会看到更新后的内容。
我正在使用这种方法,对我来说效果很好。
在我的 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 缓存。 以这种方式,只要服务器上的内容发生变化,用户就会看到更新后的内容。 我正在使用这种方法,对我来说效果很好。