为WebView 同步cookie


import android.os.Build;
import android.text.TextUtils;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;

import java.util.Map;


public class CookieUtils {

/**
* 将cookie同步到WebView
* @param url WebView要加载的url
* @param cookies 要同步的cookie
* @return true 同步cookie成功,false同步cookie失败
* @Author JPH
*/
public static boolean syncCookie(String url, Map<String, String> cookies) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
CookieSyncManager.createInstance(Context context);
}
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);

String Domain = null;
String path = null;
// 得到Domain 和 Path
for (String key : cookies.keySet()) {
if (key.equalsIgnoreCase("Domain")) {
Domain = cookies.get(key);
} else if (key.equalsIgnoreCase("Path")) {
path = cookies.get(key);
}
}

//拼接成想要格式
for (String key : cookies.keySet()) {
if (!key.equals("Domain") && !key.equals("Path")) {
String value = cookies.get(key);
StringBuilder sb = new StringBuilder();
sb.append(key + "=" + value + ";");
sb.append("domain=" + Domain + ";" + "path=" + path);
cookieManager.setCookie(url, sb.toString());
sb = null;
}
}
String newCookie = cookieManager.getCookie(url);
return TextUtils.isEmpty(newCookie)?false:true;
}

}
原文地址:https://www.cnblogs.com/wutianlong/p/7473423.html