Android中的Cookies和WebView缓存
2016-12-16 09:18
330 查看
原来以为两个是一样的概念,后来做需求发现不是的,webview不加载缓存时,却加载了用户信息记录,后来发现是没有清除cookies。
一、清除cookie
二、清除特定url的Cookies
二、清除webview缓存,要没不加载缓存,要么就直接删除目录下的db
在项目中经常会使用到WebView 控件,当加载html 页面时,会在/data/data/package_name目录下生成database与cache 两个文件夹。请求的url 记录是保存在WebViewCache.db,而url 的内容是保存在WebViewCache
文件夹下..
三、两者结合使用就是
在项目中经常会使用到WebView 控件,当加载html 页面时,会在/data/data/package_name目录下生成database与cache 两个文件夹。请求的url 记录是保存在WebViewCache.db,而url
的内容是保存在WebViewCache 文件夹下..
一、清除cookie
public static void clearCookies(Context context) { @SuppressWarnings("unused") CookieSyncManager cookieSyncMngr = CookieSyncManager.createInstance(context); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.removeAllCookie(); }
二、清除特定url的Cookies
/** * 同步一下cookie */ public static void synCookies(Context context, String url) { CookieSyncManager.createInstance(context); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setAcceptCookie(true); cookieManager.removeSessionCookie();//移除 cookieManager.setCookie(url, cookies);//指定要修改的cookies CookieSyncManager.getInstance().sync(); }
二、清除webview缓存,要没不加载缓存,要么就直接删除目录下的db
在项目中经常会使用到WebView 控件,当加载html 页面时,会在/data/data/package_name目录下生成database与cache 两个文件夹。请求的url 记录是保存在WebViewCache.db,而url 的内容是保存在WebViewCache
文件夹下..
//优先使用缓存: WebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //不使用缓存: WebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
// clear the cache before time numDays private int clearCacheFolder(File dir, long numDays) { int deletedFiles = 0; if (dir!= null && dir.isDirectory()) { try { for (File child:dir.listFiles()) { if (child.isDirectory()) { deletedFiles += clearCacheFolder(child, numDays); } if (child.lastModified() < numDays) { if (child.delete()) { deletedFiles++; } } } } catch(Exception e) { e.printStackTrace(); } } return deletedFiles; }
三、两者结合使用就是
public void clearCache(Context context) { CookieSyncManager cookieSyncMngr = CookieSyncManager.createInstance(context); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.removeAllCookie(); context.deleteDatabase("webview.db"); context.deleteDatabase("webviewCache.db"); context.deleteDatabase("webviewCookiesChromium.db"); context.deleteDatabase("webviewCookiesChromiumPrivate.db"); //WebView 缓存文件 File webviewCacheDir = new File(context.getCacheDir().getAbsolutePath()+"/webviewCacheChromium"); //删除webview 缓存目录 if(webviewCacheDir.exists()){ // deleteFile(webviewCacheDir); } }
在项目中经常会使用到WebView 控件,当加载html 页面时,会在/data/data/package_name目录下生成database与cache 两个文件夹。请求的url 记录是保存在WebViewCache.db,而url
的内容是保存在WebViewCache 文件夹下..
相关文章推荐
- [Android] WebView删除缓存
- 二十六、Android WebView缓存
- Android webView缓存机制
- Android WebView缓存
- Android WebView删除缓存
- Android高手进阶教程(二十四)之---Android WebView的缓存!!!
- Android WebView的缓存!!!
- Android WebView缓存策略详解
- Android进阶篇-清除WebView的缓存
- Android WebView缓存
- Android WebView删除缓存
- Android WebView删除缓存
- android:删除webview缓存数据
- Android WebView缓存分析
- Android高手进阶教程(二十四)之---Android WebView的缓存!!!
- Android高手进阶教程(二十一)---Android WebView的缓存!!!
- Android WebView的缓存
- 21.Android WebView的缓存
- Android WebView缓存策略详解
- 关于android 端,人人网以及新浪网 webview 页面缓存问题