1. 程式人生 > >【Android】WebView設定Cookie

【Android】WebView設定Cookie

在網上搜索給WebView設定Cookie這個問題得到的回答都是以下這段程式碼:

CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.setCookie(url, cookies);//cookies是在HttpClient中獲得的cookie
CookieSyncManager.getInstance().sync();

但是我用這段程式碼在實際執行的時候並沒有讓 WebView 帶上Cookie,測試機器系統為Android 4.2.2,於是又去網路上搜索了下,發現了這個答案:

只有當Cookie的Domain和Path與請求的URL匹配時,才會傳送這個Cookie成功。

在Java中,可以通過 Cookie 的 getDomain()getPath() 方法來獲取我們想要的 Domain 和 Path。
還需要注意的另外一件事情就是如果上傳的 Cookie 不僅僅要求 sessionid,還要求其他專案,那麼你必須採用以下的方式來設定Cookie:
key=value;domain=domainContent;path=pathContent
例如:
sessionid=xxxxxx;domain=domainStr;path=pathStr
max_age=xxxxxx;domain=domainStr;path=pathStr


每一個條目都要這樣操作,因為CookieManager只能夠得到 “;” 前面的資料。

相關推薦

AndroidWebView設定Cookie

在網上搜索給WebView設定Cookie這個問題得到的回答都是以下這段程式碼: CookieSyncManager.createInstance(context); CookieManager cookieManager = CookieManager.

AndroidWebView設定背景色

 試遍了網上關於WebView設定背景色的各個方法,都沒有下面這個靠譜。描述下我遇到的問題,WebView載入顯示一段Html程式碼,但是UI設計的主介面是有一個淺灰色背景,而WebView預設的背景色白色死活去不掉,最終找到了下面的這篇文章。正解: Android Web

AndroidWebView核心與XWalk核心獲取螢幕內容截圖總結

1.專案中使用到的截圖方法: public static Bitmap getWebViewContentShot(final View view) { if (view == null) retur

Android TextView設定個別字型樣式

1 SpannableString msp = new SpannableString("測試"+XM+"更換當前號碼將從手機發送一條普通簡訊進行驗證"); 2 msp.setSpan(new ForegroundColorSpan(Color.BLUE), 2, XM.length()+2, Span

Androidwebview javascript 注入方法

Android中向webview注入js程式碼可以通過webview.loadUrl("javascript:xxx")來實現,然後就會執行javascript後面的程式碼。 但是當需要注入一整個js檔案的時候,貌似就有點麻煩了。不過理清以下思路,方法其實也很簡單,如下:我們通過在webview的onPag

AndroidWebView 開發遇到的問題小結

這幾天在AndroidStudio上利用WebView進行應用打包,期間遇到的幾點問題有必要進行總結,在AS3.x上還是有一些不同,寫Android SDK版本的更新帶來的問題。在每個問題下可能會有相應的參考連結,這是在探索webView過程中起到幫助作用的帖子,謝謝他們! 1、網路

Androidwebview點選跳轉APP

在AndroidMainfest檔案中的activity中新增: <intent-filter>                  <!--路徑匹配  協議://主機名:埠號/路徑-->                 <!--content:

android程式碼設定text的顏色setTextColor用法

【錯誤示範】 text用程式碼設定顏色setTextColor(R.drawable.selColor); xml如下: <drawable name="selColor">#c400ee</drawable> 顏色變成別的顏色了。 果斷召喚度娘。

AndroidTextView設定段落間距

TextView只提供設定行距的方法,沒有提供段落間距的方法,但是提供了一個 SpannableString 類來給TextView設定各種效果, 如圖: 其中一個給文字替換為圖片的效果給我帶來了靈感, 我可以用一個圖片(最後換成一個寬1px,指定

Androidjava.lang.RuntimeException: java.lang.Throwable: A WebView method was called on thread 'JavaBridge'.

ole lang exp blog web ref overflow post exce 一、問題 Java調用JS事件出現 java.lang.RuntimeException: java.lang.Throwable: A WebView method was call

AndroidAndroid WebView 的幾個操作

1. 開啟網頁時不呼叫系統瀏覽器, 而是在本WebView中顯示: mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebVi

Android webview設定cookiecookie丟失問題

Android頁面嵌套了一個h5,H5頁面內部有使用者登陸頁面,發現h5頁面的登陸功能無法使用,一直登陸失敗。和web那邊商量一會,發現js寫入的cookie丟失了。所有需要Android這邊在重寫寫入一次。 mWebView = view.findViewById(R

androidWebview設定多個cookie引數

有時候需要在cookie中設定多個引數傳遞給前端頁面,常用的是 token和渠道號 。將N個引數的key-value按照分號分開然後一次設定,一直只使用token第一個引數,可以正常獲取,所以沒問題,比如 StringBuilder sbCookie = n

Androidandroid:padding屬性設定對ImageButton無效問題

【問題】 ImageButton 無法通過設定 padding 按比例縮小問題,而 ImageView 卻可以; 【分析】 看 ImageButton 的樣式定義,其 scaleType 模式預設是

Android關閉WebView滾動,disable webView scroll

有效程式碼: // disable scroll on touch webview.setOnTouchListener(new View.OnTouchListener() { @

android解決Viewpager設定高度為wrap_content無效的方法

今天發現設定viewpager高度為wrap_content時並沒作用,stackoverflow給出瞭解決方案,就是自定義viewpager,重寫onMesure()方法: public class WrapContentHeightViewPager extends

android webview 設定 Cookie

   一般用webview的時候都不會考慮Cookie問題,但是某些需求考慮到使用者登入問題,所以就得考慮給webview設定Cookie.    我用的實現方式是將Cookie存放到 HashMap 並 儲存到 SharedPreferences,然後再需要使用到的地方取出來使用 //儲存C

Android簡單實現使用WebView元件實現在App內開啟web

關於WebView元件 如何實現在App內嵌web 在新建的android專案裡,如果要實現內嵌Web,一定要在AndroidManifest.xml設定訪問網路許可權: <uses-permission android:name="andr

AndroidView移動時RawX()為什麼要重新設定初始座標/getX()和getRawX()的區別

今天在做拖動View使其跟隨手指移動的Demo時,用了getX()和getRawX()兩種方法來實現, getX()的方法實現: public boolean onTouchEvent(MotionE

Android WebView設定cookie

Android中WebView載入網頁,有時候需要通過cookie想網頁傳遞資訊,這時候這樣操作。 首先設定接收cookie: CookieManager.setAcceptFileSchemeCookies(true); CookieManager.getInstanc