在webview的使用中,使用如下配置的第二种方案依然会出现莫名其妙的情况。
- //优先使用缓存:
- WebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
- //不使用缓存:
- WebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
请在h5页面打开之前调用如下方法,清除浏览器的cookie缓存
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();//移除
CookieSyncManager.getInstance().sync();
即可解决。
补充其他网友的一些资料:
发现这个问题,一个朋友在iteye上问的:
Android的CookieManager只提供了removeAllCookies方法,用来删除所有的cookie,有什么办法只删除和特定url关联的cookie呢?本来打算使用setCookie(url, value)将指定url关联的cookie设为空串,但试了一下发现这个方法只是在已有的基础上继续添加cookie,并不能重置已有的cookie。
有朋友给打答案:
- /**
- * 同步一下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();
- }