1.首先当加载完webview的时候,我们得获取到webview上设置的cookie信息,代码如下;
<span style="white-space:pre"> </span>@Override
public void onPageFinished(WebView view, String url) {
// //获取webview里面的cookie信息
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
String cookieStr = cookieManager.getCookie(url);
CookieBean cookieBean = new CookieBean(cookieStr, PostEventAction.COOKIE_DOMAIN_HOST);
HttpCookieManager.saveCookie(getApplicationContext(), cookieBean, 0);
Logger.e("sunzn", "Cookies = " + cookieStr);
super.onPageFinished(view, url);
<span style="white-space:pre"> </span>}
这边采用SharedPreferences保存存储的cookie信息.
2.之后需要进行同步cookie的操作,再loadurl之前同步cookie,如下;
<span style="white-space:pre"> </span>public synchronized static void syncCookie(Context context) {
CookieBean cookieBean = HttpCookieManager.getCookieBean(context);
if (cookieBean != null) {
CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeAllCookie();
String[] cookies = cookieBean.getJsessionid().split(";");
for (int i = 0; i < cookies.length; i++) {
cookieManager.setCookie(cookieBean.getDomain(),cookies[i]);
}
CookieSyncManager.getInstance().sync();
}
}
至此,实现了免登录的功能。