我正在使用 webview,我更喜欢缓存getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
但我需要知道一个网页是否是第一次加载,或者它是否来自缓存。
除了自己手动缓存页面外,我看不到这样做的方法。有谁知道询问缓存的方法,webview 必须在幕后执行此操作!
我正在使用 webview,我更喜欢缓存getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
但我需要知道一个网页是否是第一次加载,或者它是否来自缓存。
除了自己手动缓存页面外,我看不到这样做的方法。有谁知道询问缓存的方法,webview 必须在幕后执行此操作!
首先,您必须为您的 webView 设置一个 WebViewClient/WebChromeClient。您可能想分别查看 WebViewClient/WebChromeClient 类。下面列出了一堆 API,我已经将其中一些您可能感兴趣的内容记下来:(摘自 Android 开发者网站)
/********WebChromeClient 类******/
public void getVisitedHistory(ValueCallback 回调)
获取所有访问历史项的列表,用于链接着色
/*********WebStorage 类 ****/
public void getOrigins(ValueCallback 回调)
获取当前使用应用程序缓存或 Web SQL 数据库 API 的源。此方法异步操作,结果通过 ValueCallback 提供。原点以 Map 类型的地图形式提供,从原点的字符串表示形式到 WebStorage.Origin 对象。
如果这些似乎都不起作用,那么您可以依靠直接查询应用程序的缓存目录(/data/data/my_app_package/cache 在 Eclipse IDE 中的 DDMS 选项卡下),以编程方式您将能够使用 getCacheDir 访问缓存目录() API。请参阅如何查看 Android 应用程序特定缓存?了解详细信息。