我正在使用webview,我更喜欢缓存getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
Android Webview - 如何判断页面是否从缓存中加载?
但我需要知道一个网页是第一次加载,还是它来自缓存。
我看不到一种方法来做到这一点,除非手动缓存我自己的网页。有没有人知道查询缓存的方法,webview必须在幕后做这件事!
我正在使用webview,我更喜欢缓存getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
Android Webview - 如何判断页面是否从缓存中加载?
但我需要知道一个网页是第一次加载,还是它来自缓存。
我看不到一种方法来做到这一点,除非手动缓存我自己的网页。有没有人知道查询缓存的方法,webview必须在幕后做这件事!
首先,您必须为您的webView设置WebViewClient/WebChromeClient。您可能想分别查看WebViewClient/WebChromeClient类。下面列出了一些API,我列出了其中一些可能对您感兴趣的API:(Android开发人员网站摘录)
/******** WebChromeClient CLASS *** ***/
公共无效getVisitedHistory(ValueCallback回调)
获取所有的列表访问历史记录项,用于链路着色
/********* WebStorage CLASS ** **/
public void getOrigins(ValueCallback callback)
获取当前使用Application Cache或Web SQL数据库API的来源。此方法异步运行,结果通过ValueCallback提供。源地址是从原点的字符串表示形式到WebStorage.Origin对象的Map类型的映射。
如果这些都看不出来,那么您可以依靠直接查询应用程序的缓存目录(在eclipse IDE中的DDMS选项卡下的/ data/data/my_app_package/cache),以编程方式您将能够访问缓存目录使用getCacheDir()API。具体细节请参考How do I view Android application specific cache?。
如果无法建立连接,则不提问者想知道何时使用缓存。他们让使用缓存之前的连接失败,我不能用这个为我的情况。 – serenskye 2013-04-11 16:16:06
你为什么要这样做? – 2013-04-11 16:23:00
我有一个网页加载时出现的progressBar和screen dimmer,但是如果页面被缓存,我不想显示它,这是没有必要的,它使流动感觉很笨重。 – serenskye 2013-04-11 16:36:41