Android 原生和H5 同一cookie

2021-09-01 05:51:17 字數 1406 閱讀 7639

引言

在開發過程中,我們有時會需要讓android原生 登入完成之後記錄登入狀態,然後在內嵌的 h5 頁面也使用當前的登入賬戶,這個時候,我們可以採用 token 的方式,後台根據 token 方式,去載入對應頁面資料。

當 token 失效時,當然也就代表了當前的使用者的登入有效期過期了。

不過 token 有效期的檢驗 邏輯很簡單,我們先不做分析,下面我們來分析下如何將登入資訊儲存到cookie,然後讓android 和 h5 公用這個cookie。

具體操作

以httpurlcollection為例: 

string cookiestr = conn.getheaderfield("set-cookie");

/**

* 將cookie同步到webview

* @param url webview要載入的url

* @param cookie 要同步的cookie

* @return true 同步cookie成功,false同步cookie失敗

* @author jph

*/public static boolean synccookie(string url,string cookie)

cookiemanager cookiemanager = cookiemanager.getinstance();

cookiemanager.setcookie(url, cookie);//如果沒有特殊需求,這裡只需要將session id以"key=value"形式作為cookie即可

string newcookie = cookiemanager.getcookie(url);

return textutils.isempty(newcookie)?false:true;

}

如果設定成功,通過cookiemanager.getcookie(url)方法就可取得剛才設定的cookie,如果兩次設定cookie的url相同,則cookiemanager會將上一次設定的cookie覆蓋,已達到更新的效果。

同步cookie要在webview載入url之前,否則webview無法獲得相應的cookie,也就無法通過驗證。

每次登入成功後都需要呼叫」synccookie」方法將cookie同步到webview中,同時也達到了更新webview的cookie。如果登入後沒有及時將cookie同步到webview可能導致webview拿的是舊的session id和伺服器進行通訊。

優點:方便,只需要在登陸後將cookie同步到webview即可,省去了每次請求都需要設定一次的繁瑣。

相容性好,因為是系統原生支援的,所以相容性自然比方式一要好,不存在cookie被攔截的問題。

H5喚起原生應用

1 scheme host path query 喚起應用 終端如果已經安裝我們的應用,這個時候可以直接喚起原生應用 終端如果沒有安裝我們的應用,這時我們需要引導使用者去安裝。123 4567 891011 1213 1415 1617 1819 2021 2223 2425 2627 2829 3...

原生h5表單驗證

近來做專案時發現h5表單驗證挺不錯的,畢竟原生的用起來比較方便簡單,在此做個總結 1.現在我們來簡單的實現乙個h5表單驗證 tip 在使用pattern時需要input不能為空,所以必須要用上required,否則pattern不會起作用。2.當然如果你想使用h5的表單驗證就必須使用submit來提...

H5內嵌原生app

因此,可以看到內嵌其實並不難,難就難在要適配 原生與web互動 資料傳遞等,當然我們也可以使用vue來開發h5介面 一 如何實現互動?答案是使用第三方外掛程式jsbridge 1.通過js偽造請求 原生攔截獲取資料 原理類似於jsonp 首先在js中定義乙個函式並掛載在window下,然後在原生中呼...