Android的HttpClient和WebView session不同的問題 – Android移動開發技術文章_手機開發 Android移動開發教學課程

 

在開發一個項目時,遇到瞭這麼一個問題,登錄界面是用Android的native的UI來做的,登錄成功後會跳轉到WebView來加載Sencha Touch的數據,但是在WebView到後臺Load數據的時候發現,這時的session和登錄時的session不同瞭,因此取不到數據,為此google瞭很久,終於在StackOverflow找到瞭方法,在此先貼出原文地址:

 

https://stackoverflow.com/questions/1652850/android-webview-cookie-problem

 

其中關鍵點在下面的這些code裡:

 

</pre><pre name="code" class="java">//——- Native request activity 

private DefaultHttpClient httpClient; 

public static Cookie cookie = null; 

 

//After Login 

List<Cookie> cookies = httpClient.getCookieStore().getCookies(); 

if (!cookies.isEmpty()) { 

    for (int i = 0; i < cookies.size(); i++) { 

        cookie = cookies.get(i); 

    } 

 

 //註:下面的code寫在WebView的Activity裡 

//——- Web Browser activity 

Cookie sessionCookie = myapp.cookie;    //這裡的cookie就是上面保存的cookie 

CookieSyncManager.createInstance(this); 

CookieManager cookieManager = CookieManager.getInstance(); 

if (sessionCookie != null) { 

    cookieManager.removeSessionCookie(); 

    String cookieString = sessionCookie.getName() + "=" + sessionCookie.getValue() + "; domain=" + sessionCookie.getDomain(); 

    cookieManager.setCookie(myapp.domain, cookieString); 

    CookieSyncManager.getInstance().sync(); 

 

不多說瞭,主要是在登錄成功後,把cookie存起來,然後在WebView中SetCookie

qq280948982的專欄

發佈留言