WebView cookie 管理


Android應用程序中經常會加載一個WebView頁,如果需要客戶端向WebView傳遞信息,比如Cookie,也是可以的。

需要應用程序先將Cookie注入進去,打開該網頁時,WebView會將加載的url通過http請求傳輸到服務器。同時,在這次請求中,會將Cookie信息通過http header傳遞過去。

    流程如下:

    1、客戶端通過以下代碼設置cookie

public static void synCookies(Context context, String url) {  
	    CookieSyncManager.createInstance(context);  
	    CookieManager cookieManager = CookieManager.getInstance();  

cookieManager.setAcceptCookie(true);
            cookieManager.removeSessionCookie();// 移除
            cookieManager.setCookie(url, "uid=1243432");        
  CookieSyncManager.getInstance().sync();  
}

   2、CookieManager會將這個Cookie存入該應用程序/data/data/databases/目錄下的webviewCookiesChromium.db數據庫的cookies表中

   3、打開網頁,WebView從數據庫中讀取該cookie值,放到http請求的頭部,傳遞到服務器

   4、客戶端可以在注銷登錄時清除該應用程序用到的所有cookies

private void removeCookie(Context context) {
		CookieSyncManager.createInstance(context);  
		CookieManager cookieManager = CookieManager.getInstance(); 
		cookieManager.removeAllCookie();
		CookieSyncManager.getInstance().sync();  
	}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM