編輯:關於Android編程
首先回顧一下Cookie與Header這兩個重要的概念,不太清楚的話可以看我之前的博客或者查詢一下相關的資料:
會話技術 Cookie和Session
HTTP協議
這裡將兩者在Android平台上做一個簡單的對比:
Cookie vs Header
讀取 容易讀取 Ajax請求不能讀取
WebView支持 全支持 2.2以上才支持
在Android手機中,Cookie的相關信息保存在/data/data/package_name/database/webview.db中.
Cookie從Android最早的版本已經開始支持. 但Cookie在Android2.2以上才WebView才支持headers(Android2.2才加入了webview.load(url,headers)的API).這方面還好,畢竟現在主流的手機已經普遍安裝了Android4.0及以上的版本,2.2以下的手機市場占有率並不多了,受到影響不大.
但是Ajax請求不能讀取影響就比較嚴重了,畢竟現在的Web頁面大量應用了Ajax跳轉,不可能不處理這種情況. 關於這方面我在之前的Android WebView常見問題及解決方案匯總 中已經提到,當時是采取特殊標記,過濾Ajax的url,采取將參數拼接到URL末尾的方式.解決.
而Cookie呢,無論是獲取還是操作相當簡單,無論是Java還是Android平台都有對應完善的API和文檔描述.
然後看一下Cookie與Header的應用場景,正好是由兩者的生命周期來決定的:
Headers每次都要重新獲取並進行傳遞,而Cookie,大家想必也知道,本身借用了session的實現,在web端長用與保持比如登錄,購物車等狀態的保
概括地來說,如果需要傳遞一些可能會頻繁更新的信息,我們可以使用Headers或者拼接參數的方法(處理ajax等非超鏈接請求).但如果只是需要保持一定的狀態呢,就需要使用Cookie.
從另外一個角度來說, 使用Header傳遞數據往往導致用戶使用客戶端時,一定操作後會導致顯示不同的頁面或者頁面更新. 而Cookie的使用,使得整個頁面或者頁面固定的部分顯示固定的信息.
讓我們看一下如何將Cookie和WebView進行結合:
Cooki的獲取:
CookieManager cm = CookieManager.getInstance(); String Cookiestr = cm.getCookie(url);
CookieSyncManager.createInstance(this); CookieSyncManager.getInstance().sync();
注意,此處代碼需在在webview加載URL前設置,並且在調用後,不再設置webview的websetttings屬性,否則會導致失效.
一般通過HttpClient,獲取服務器的Cookie後再進行設置(比如一些登錄的用戶信息或者狀態信息):
Listcookies = httpclient.getCookieStore().getCookies();
清除Cookie:
CookieManager.getInstance().removeSessionCookie();或
CookieManager.getInstance().removeAllCookies();
如果只是需要刪除和特定url關聯的cookie,需要先進行移除後同步:
/** * 同步一下cookie */ public static void synCookies(Context context, String url) { CookieSyncManager.createInstance(context); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setAcceptCookie(true); cookieManager.removeSessionCookie();//移除 cookieManager.setCookie(url, cookies);//指定要修改的cookies CookieSyncManager.getInstance().sync(); }
開始學習第4章 - 著色器的反射看完了1、2節,來記錄一下。反射主要是利用了 Cubemap 立方體貼圖。認識Cubemap立方體貼圖,就如同名字所說,在一個立方體上有6
看了看以前的項目,發現用了一個叫RoundImageView的類,當時直接從網上copy的(^__^) 嘻嘻……,今天偶爾看到了,覺得不能一直
前面文章介紹了Activity以及Intent的使用,本文就來介紹Service。如果把Activity比喻為前台程序,那麼Service就是後台程序,Service的整
對於剛接觸Android的新人和剛走上Android技術崗位的開發者們來說,在熟悉了相關之後,在項目完成後,就會面臨著一個重大的挑戰,那麼就是屏幕適配的問題。當然我們所說