Android中的Cookies和WebView缓存
来源:互联网 发布:北师大网络信息门户 编辑:程序博客网 时间:2024/06/05 18:13
原来以为两个是一样的概念,后来做需求发现不是的,webview不加载缓存时,却加载了用户信息记录,后来发现是没有清除cookies。
一、清除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 numDaysprivate 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 文件夹下..
0 0
- Android中的Cookies和WebView缓存
- Android volley和webview同步cookies
- WebView中的Cookies问题
- android中的WebView缓存分析
- android webview cookies使用总结
- Android WebView访问网站携带登录认证Cookies和动态自定义的cookies
- Android Webview清除缓存和Cookie
- Android WebView 缓存机制和模式详解
- Android Webview清除缓存和Cookie
- Android: HttpClient与Webview共享cookies
- Android: HttpClient与Webview共享cookies
- Android webView使用详解(Cookies)
- Android WebView的缓存!!!
- [Android] WebView删除缓存
- Android WebView的缓存
- Android WebView删除缓存
- Android WebView的缓存
- Android WebView删除缓存
- android studio 中获取MD5和SHA1值
- [产品经理]产品管理的工作流程
- Ubuntu下Samba服务器的安装和简单使用
- 强大灵活的Sublime3正则替换功能
- Java基础之 连接池 dbcp c3p0
- Android中的Cookies和WebView缓存
- 刷题记录
- ACM——划水ing——背包讨论
- 垃圾回收机制
- 笔记
- 子网掩码及其作用
- NetApp FAS 系列Linux DM安装步骤
- 1002.Alphacode
- std::vector<X>().swap(*XX) 的用意