1. 程式人生 > >在WebView載入頁面時新增cookies

在WebView載入頁面時新增cookies

場景:應用的登入介面是用android原生寫的,登入成功後儲存cookies到本地,然後需要用webview去載入某個頁面,此時需要給webview新增本地儲存的cookies,以避免二次登入.

我們可以在使用mWebView.loadUrl(url)之前給url新增上cookies,這樣就可以避免重複登入問題了。

程式碼如下:

import java.util.List;
import org.apache.http.client.CookieStore;
import org.apache.http.cookie.Cookie;
import android.webkit.CookieManager;
import android.webkit.CookieSyncManager;
import com.lcoa.application.BaseApplication;
/**
 * 儲存伺服器返回的cookies
 * 
 * @author zh
 * 
 */
public class MyCookieStore {
	private static CookieSyncManager cookieSyncManager;
	public static CookieStore cookieStore = null;
	public static String JSESSIONID = null;
	public static String result = null;
    //在mWebView.loadUrl(url); 之前給url新增上cookies
	public static void setCookiesToURL(String url) {
		try {
			List<Cookie> cookies1 = MyCookieStore.cookieStore.getCookies();
			if (cookies1 != null && !cookies1.isEmpty()) {
				if (null == cookieSyncManager) {
					cookieSyncManager = CookieSyncManager.createInstance(BaseApplication.getApplication());
				}
				CookieManager cookieManager1 = CookieManager.getInstance();
				cookieManager1.setAcceptCookie(true);
				cookieManager1.removeSessionCookie();// 移除
				for (Cookie cookie1 : cookies1) {
					Cookie sessionInfo = cookie1;
					String cookieString = sessionInfo.getName() + "=" + JSESSIONID + ";";
					cookieSyncManager.startSync();
					new Thread().sleep(500);// 重新整理 webview.db,不然不會得到實時效果
					cookieManager1.setCookie(url, cookieString);
				}
				
				String cook = cookieManager1.getCookie(url);
				System.out.println("getCookie:  -----------" + cook);
				
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
}


相關推薦

WebView載入頁面新增cookies

場景:應用的登入介面是用android原生寫的,登入成功後儲存cookies到本地,然後需要用webview去載入某個頁面,此時需要給webview新增本地儲存的cookies,以避免二次登入. 我們可以在使用mWebView.loadUrl(url)之前給url新增上c

webView--Android中webView載入H5,H5頁面在不同的手機可能出現文字或者圖示類似換行的現象

@Override  public Resources getResources() { Resources res = super.getResources(); Configuration config=new Configuration(); config.setToDefaults(); res.up

解決Android的Webview載入頁面空白問題

通過webview載入百度地圖開發的h5頁面時,出現了頁面空白的問題。 出現這問題通過下面兩個設定能解決大部分的問題。 mWebSettings.setJavaScriptEnabled(true);//是否允許JavaScript指令碼執行,預設為false mWebSettings.se

add,update同一個頁面新增操作Id欄位報錯

原因:新增操作時,ID欄位為空,進行空指標查詢導致報錯 HTTP Status 500 - Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1;

Android升級到7.0使得webview載入頁面為空白頁

        前段時間,公司一哥們把他的手機拿給我看,問到公司的軟體載入進去是空白頁,等了好久也是空白。我也為是網路出現了問題,排查沒問題啊。看看是不是快取問題,又是清快取,又是解除安裝重灌。結果還是空白頁面。想了一下是不是

Android webview載入頁面

private WebView webView; public void init() { webView = (WebView) findViewById(R.id.webview); //支援js webV

webview載入頁面不完整,以及各種屬性

我直接上程式碼了。簡單粗暴。因為js Android 互調還沒做,暫時先完成頁面功能。 以下屬性各取所需。有不對的,望請告知。/**     * 初始化 WebChromeClient     */    private void initWebChromeClient()

NavBar載入頁面頁面不能操作的問題

今天遇到這樣的問題:一個ViewController,被幾個NavBar頁push。一個頁面的push正常,另外一個頁面push後,就不能用操作,不管點什麼地方都一樣。在xcode裡結束還可能引起xcode的崩潰。一直查不出是什麼總是。一直到下午,偶爾的執行時,彈出一個AlertView(我在p

Hive 修改表新增分割槽(add partition)和 載入資料新增分割槽 的區別

假定有hive中有兩個表empl_inn(管理表)和empl_ext(外部表),他們都有分割槽(logdate string); 1.對於外部表 empl_ext        alter table empl_ext add partition (logdate=‘201

使用WebView載入網頁,獲取網頁資料

設定webView支援js.2.webView.addJavascriptInterface(new Handler(), “handler”);使用了這段程式碼後就相當於在網頁的js中增加了一個叫handler的類,而這個handler就是後面寫的內部類。可以直接在網頁中這樣使用:onClick=”java

頁面提交後提示“連線被重置”或“載入頁面到伺服器的連線被重置”的問題分析

平臺:windows7+JDK1.6+tomcat 5.0.28 框架:structs+java+jsp 在某jsp頁面中文字框錄入內容後,點選提交按鈕,有時會出現“載入頁面時到伺服器的連線被重置”頁面,由於還沒進入到action檔案就跳到錯誤頁面,所以排除是java程式碼

WebView 載入資料顯示進度條,載入完後再把進度條取消並顯示內容

轉載地址:http://blog.sina.com.cn/s/blog_7a66361301011a46.html webview 載入資料時顯示進度條有兩種. 第一種方法 這個是載入資料時顯示進度條 super.onCreate(savedInstanceState);

Android WebView載入頁面的輸入框被軟鍵盤遮擋的問題

當實現沉浸式狀態列時遇到軟體盤遮擋WebView頁面的輸入框的問題,這是實現方式有問題,應該檢查你的實現方式。  1)載入WebView的Activty不能設定為全屏模式,即Theme.NoTitleBar.Fullscreen,可以使用Theme.Holo.Light.N

Android在WebView載入資料展示loading的Dialog

WebSettings settings = webView.getSettings(); /********TODO 問題頁面,android如何獲取使用者在頁面上點選JS的內容********/ settings.setJavaScriptEnabled(true);

webview載入頁面,JS方法不能載入的問題解決

   今天發現在webview,沒有辦法載入JS方法,跳不出那種提示框,就是寫了webview.getSettings().setJavaScriptEnabled(true); 這一句也完全沒用。後來發現網上說的解決方案是用要用到WebChromeClient ,並且重寫

fragment+viewpager第二次載入頁面顯示空白的原因!

在編寫一個底層有三個RadioButton,中間層是一個Linearlayout的app的的時候,在每個radiobutton對應的向Linearlayout中新增fragment,第二個有點特殊,不是直接的加入fragment而是加入了一個viewpager,並且在vie

iOS10下UIWebView載入頁面出現log求解

 WF: _userSettingsForUser mobile: {     filterBlacklist =     (     );     filterWhitelist =    

Webview載入網頁出現NET::ERR_CACHE_MISS的錯誤

當使用webview載入網頁時我們會遇到網頁加載出錯,出現NET::ERR_CACHE_MISS的錯誤,解決方法只需要在你工程的AndroidManifest.xml檔案中加入聯網的許可權 <uses-permission android:name="an

jquery mobile在頁面載入新增載入中效果

<html xmlns="http://www.w3.org/1999/xhtml"> <head > <meta http-equiv="Content-Type" content="text/html; charset=utf-8"

layui中radio的動態載入(進入修改頁面,設定radio)

動態設定   radio  的值讓它處於選中狀態 效果圖 : 前端程式碼: <div class="layui-form-item"> <label class="layui-form-label">狀態</label>