Android WebView 保存cookie 最简单方式

//初始化webView 时调用
/**
* 设置 cookies
* @param cookiesPath 请求地址
*/
public void setCookies(String cookiesPath) {
Map<String, String> cookieMap = new HashMap<>();
String cookie = getSharedPreferences("cookie", Context.MODE_PRIVATE).getString("cookies", "");// 从SharedPreferences中获取整个Cookie串
if (!TextUtils.isEmpty(cookie)) {
String[] cookieArray = cookie.split(";");// 多个Cookie是使用分号分隔的
for (int i = 0; i < cookieArray.length; i++) {
int position = cookieArray[i].indexOf("=");// 在Cookie中键值使用等号分隔
String cookieName = cookieArray[i].substring(0, position);// 获取键
String cookieValue = cookieArray[i].substring(position + 1);// 获取值

String value = cookieName + "=" + cookieValue;// 键值对拼接成 value
Log.i("cookie", value);
CookieManager.getInstance().setCookie(getDomain(cookiesPath), value);// 设置 Cookie
}
}
}
//stop 生命周期调用
/**
* 保存 Cookie
*/
private void saveCookie() {
CookieManager cookieManager = CookieManager.getInstance();
String cookieStr = cookieManager.getCookie(getDomain(getString(R.string.app_url)));
SharedPreferences preferences = getSharedPreferences("cookie", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("cookies", cookieStr);
editor.commit();
}
posted @ 2021-08-05 14:07  当当~  阅读(467)  评论(0编辑  收藏  举报