1. 程式人生 > >WebView 設定url的Cookie 免登陸

WebView 設定url的Cookie 免登陸

說明:

伺服器網頁要通過網頁的Cookie得到客戶端的登陸狀態,必須客戶端給網頁Cookie設定值,這樣服務端才能得到Cookie的值。

步驟:

1、WebView裡面必須設定屬性:

// 設定可以訪問檔案
        myWebView.getSettings().setAllowFileAccess(true);
        //如果訪問的頁面中有Javascript,則webview必須設定支援Javascript
        myWebView.getSettings().setJavaScriptEnabled(true);
        //myWebView.getSettings().setUserAgentString(MyApplication.getUserAgent());
        myWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
        myWebView.getSettings().setAllowFileAccess(true);
        myWebView.getSettings().setAppCacheEnabled(true);
        myWebView.getSettings().setDomStorageEnabled(true);
        myWebView.getSettings().setDatabaseEnabled(true);

2、呼叫

在載入url之前一定要設定cookie

syncCookie(this, url, token);
        wvShow.loadUrl(url);//get請求

3、設定Cookie

/**
* Sync Cookie
*/
private void syncCookie(Context context, String url){
        try{
            Log.d("Nat: webView.syncCookie.url", url);           

            CookieSyncManager.createInstance(context);

            CookieManager cookieManager = CookieManager.getInstance();
            cookieManager.setAcceptCookie(true);
            //cookieManager.removeSessionCookie();// 移除
            //cookieManager.removeAllCookie();//清除所有cookie
			
			//log
            String oldCookie = cookieManager.getCookie(url);
            if(oldCookie != null){
                Log.d("Nat: webView.syncCookieOutter.oldCookie", oldCookie);
            }

			//cookie引數 - 通過Builder形式(用這種方式,就不要用下面的-單獨形式-了)
            StringBuilder sbCookie = new StringBuilder();
            sbCookie.append(String.format("JSESSIONID=%s","sid"));
            sbCookie.append(String.format(";access_token=%s", "stoken"));
            String cookieValue = sbCookie.toString();
            cookieManager.setCookie(url, cookieValue);
			
			//cookie引數 - 單獨形式(用這種方式,就不要用上面-Builder形式-了)
			cookieManager.setCookie(url, "JSESSIONID=" + sid);//和後臺約定好的sid欄位
			cookieManager.setCookie(url, "access_token=" + stoken);//和後臺約定的好的token欄位

			//最後一定要呼叫
			CookieSyncManager.getInstance().sync(); 

			//log
            String newCookie = cookieManager.getCookie(url);
            if(newCookie != null){
                Log.d("Nat: webView.syncCookie.newCookie", newCookie);
            }
        }catch(Exception e){
            Log.e("Nat: webView.syncCookie failed", e.toString());
        }
    }
 

註釋:

把約定好的欄位放進cookie裡面,網頁可以在開啟的時候,讓網頁彈出自己取出的cookie的欄位來顯示是否傳遞成功。

相關推薦

本地搭建hadoop叢集--設定ssh登陸登原理

ssh免登就是 機器與機器之間通過金鑰相互信任跳過登陸 命令 cd  cd .ssh/   ssh-keygen -t rsa 會生成兩個金鑰 id_rsa id_rsa.pub 顧名思義 一個是公鑰 一個是私鑰 A與B

WebView 設定url的Cookie 登陸

說明: 伺服器網頁要通過網頁的Cookie得到客戶端的登陸狀態,必須客戶端給網頁Cookie設定值,這樣服務端才能得到Cookie的值。 步驟: 1、WebView裡面必須設定屬性: //

php-session過期時間設定設定登陸過期時間)

今天用tp框架做一個登陸介面的時候,對於session的過期時間這個問題表費解,例如如何設定一個準確的session過期時間。 通過自己看tp的官方文件,裡面只提到了兩個,但是這兩個一個是session.gc_maxlifetime ,一個是cookie.session_lifetime。但是

Linux登陸設定登陸還需要輸入密碼

   一、Linux的免密登陸:             ssh-keygen -t rsa         ssh-copy-id -i ~/.ssh/id_rsa.pub 目標機器ip地址/主機名      驗證是否成功:ssh 目標機器      如果不需要輸入密碼了

ssh登陸設定後,還是要輸入密碼

ssh免登陸的原理是這樣的,A將自己的公鑰傳送給B,A要登陸B,B給A傳送一個隨機數,然後A用自己的私鑰對這個隨機數加密,B用儲存的A的公鑰解密,如果得到的隨機數和之前傳送的一樣,則驗證通過。 安裝就不說了,這裡說下配置的問題。然後記錄下碰到的問題。 首先進入A的家目錄 /

接入釘釘企業登陸遇到的坑!!!!

簡單 this str .config .... child onf 代碼 his 今天接入免登陸遇到個大坑,看官方文檔上寫了,先引入dingtalk.js, 然後配置dd.config({...}) 接著dd.ready(function(){ .......... })

大學校園網之跨園區登陸共享網絡

設置 共享 啟動 需要 安裝服務 con .cn roo bsp 前言: 大學校園網一般以實名制為由,禁止學生一個賬號多人使用,某些學校不僅禁止學生使用路由器,連使用電腦開wifi都會受到封號處理。 此教程的目的就是解決校園網內單個賬號多臺設備使用的問題,只需要在校園網

SSH登陸ESXI讓操作更便捷安全(幾種常用工具)

esxi vmware ssh工具 免登陸 授權訪問通常在企業環境中,管理員很少去機房在物理機面前進行操作,大部分管理員喜歡遠程管理主機,這樣既方便又高效。在windows上我們使用遠程桌面,在Linux上則使用SSH來連接。ESXi就是一個以Linux為核心改寫的操作系統,因此ESXi中也保留了SSH

網頁登陸實現

保持 post 商業 eid isset 找到 pos 判斷 exp 鏈接:https://www.zhihu.com/question/20182967/answer/76631201著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。 COOKIE由於

SourceTree跳過Atlassian賬號,登陸,跳過初始設置

oca ini 未在 copy 直接 def cred 授權 users SourceTree 安裝之後需要使用賬號登陸以授權,並且是強制登陸。 登錄過程非常漫長,並未在不FQ的情況下是不能成功的,下面記錄一下跳過登錄的方法。 裝之後,轉到用戶本地文件夾下的 S

微信綁定用戶名登陸的思路

login Nid 微信 正式 免登陸 跳轉 efault 界面 user 1.修改數據庫結構或者新建一張表,使微信的useropenid能和用戶的賬號生成綁定關系。 2.給用戶一個login.aspx界面,這個界面帶著微信公眾號的appid訪問到index.aspx,作用

SSO CAS記住密碼登陸資訊配置

                    SSO CAS記錄密碼免登陸操作     &nb

【完全分散式Hadoop】(三)叢集設定SSH無密碼登陸

之前的文章已經有SSH免密部分,這裡單獨列出來只是為了方便查詢 打通SSH,設定ssh無密碼登陸(所有節點) 組建了三個節點的叢集hadoop000、hadoop001、hadoop002 在所有節點上執行 ssh-keygen -t rsa 一路回車,生成無密碼的金鑰對。 將各個節點的公鑰

linux設定ssh密登入和ssh-copy-id命令

linux系統配置免密碼的方式: 1:ssh-keygen -t rsa ssh-keygen -t dsa 生成金鑰 2:ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] # 接下來一路回車到底

mac Source Tree登陸方法

開啟SourceTree -> 點選選單欄的 視窗 選項 -> 點選顯示託管在遠端的倉庫 -> 點選登入註冊頁面右上角的關閉按鈕 -> 點選Quit -> 點選確定關閉重新整理遠端倉庫失敗的視窗 -> 即可正常使用SourceTree了     出

cookie實現記得狀態登陸

cookie是儲存在瀏覽器的一段小資訊,基本物件是url 可以僅僅在前端js處實現保留登入狀態 核心程式碼 /** * cookie操作基本函式 * cookie的key-value使用"cphone"="xxxx" * * @author chgl16 * @da

登陸使用sourceTree

一、先說一下谷歌賬號登入的方法 1、在谷歌瀏覽器,選單->更多工具->擴充套件程式,新增谷歌訪問助手 谷歌訪問助手下載連結:https://pan.baidu.com/s/1eODbtu6iPOKEqPDacYYmUA 2、點選谷歌瀏覽器登入,註冊谷歌賬號,即可使用

ssh 登陸配置

在配置Hadoop叢集分佈時,要使用SSH免密碼登入,假設現在有兩臺機器[email protected](192.168.10.100),作為A機,[email protected](192.168.10.107),作為B機。現想[email protected]通過

Android webview設定cookie和cookie丟失問題

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

自動設定ssh密登入指令碼

自動設定ssh免密登入指令碼 `#!/bin/bash #yum安裝expect yum -y install expect #PWD_1是登陸密碼,可以自己設定 PWD_1=123456 ips=$(cat /etc/hosts |grep -v “::” | grep -v “127