Android Webview - 如何判断页面是否从缓存中加载?

vfugit 发布于 2019-03-09 android 最后更新 2019-03-09 14:35 0 浏览

我使用的是webview,我更喜欢缓存getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 但是我需要知道网页是否第一次被加载,或者它是否来自缓存。 我看不到一种方法来做到这一点,除非我自己手动缓存页面。有没有人知道查询缓存的方法,webview必须在幕后做这件事!

已邀请:

bnemo

赞同来自:

首先,您必须为webView设置WebViewClient / WebChromeClient。您可能希望分别查看WebViewClient / WebChromeClient类。下面列出了一堆API,我已经列出了一些你可能感兴趣的API :(摘自Android Developer's Site) / **** WebChromeClient CLASS ** / public void getVisitedHistory(ValueCallback callback) 获取所有访问过的历史记录项的列表,用于链接着色 / ***** WebStorage CLASS **** / public void getOrigins(ValueCallback callback) 获取当前使用Application Cache或Web SQL Database API的原点。此方法异步操作,结果通过ValueCallback提供。原点作为Map类型的映射提供,从源的字符串表示形式到WebStorage.Origin对象。 如果这些似乎没有做到这一点,那么你可以依赖直接查询应用程序的缓存目录(/ eclipse IDE中DDMS选项卡下的/ data / data / my_app_package / cache),以编程方式使用getCacheDir访问缓存目录()API。有关详细信息,请参阅How do I view Android application specific cache?