1. 程式人生 > 其它 >Android WebView 儲存cookie 最簡單方式

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();
}