将HttpClient请求获取到的Cookie设置到Webview组件

android访问网络时用到Apache的HttpClient,用此类可以去访问网络获取数据,有些项目需要会返回Cookie,并调用Webview来访问某页面,为了保持WebView组件用到的Cookie与之前获取得到的一致,这时可以通过CookieSyncManager和CookieManager来实现

1
2
3
4
5
6
7
8
9
10
11
/** 
* 同步一下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是在HttpClient中获得的cookie
CookieSyncManager.getInstance().sync();
}

增加
webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setJavaScriptEnabled(true);
属性,否则设置Cookie无效

然后在调用webView.loadUrl(url)之前一句调用此方法就可以给WebView设置Cookie

Note:这里一定要注意一点,在调用设置Cookie之后不能再更改