1. 程式人生 > >Android WebView的cookie第一次載入不工作的問題的解決

Android WebView的cookie第一次載入不工作的問題的解決

 今天遇到一個問題,在使用WebView載入一個網頁時,當用戶點選一個需要登陸的按鈕時,就跳到自己做的登入頁面,登陸成功以後,就同步WebView,相當於WebView也登入了,但是,等登陸成功以後,重新載入頁面發現還是沒有登陸,要退出這個activity再進入才顯示已經登陸,也就是登陸以後第一次載入沒有同步上。

  1. List<Cookie> cookies = client.getCookieStore().getCookies();  
  2. if(cookies.size()>0){  
  3.     CookieSyncManager.createInstance(LoginActivity.this
    );    
  4.     CookieManager cookieManager = CookieManager.getInstance();  
  5.     cookieManager.removeAllCookie();  
  6.     cookieManager.setAcceptCookie(true);  
  7.     for (int i = 0; i < cookies.size(); i++) {  
  8.         String cookieString = cookies.get(i).getName() + "=" + cookies.get(i).getValue() +  
  9.                 ";domain="
    + cookies.get(i).getDomain();    
  10.         cookieManager.setCookie(cookies.get(i).getDomain(), cookieString);    
  11.     }  
  12.     CookieSyncManager.getInstance().sync();  
  13. }  
大家注意這句程式碼cookieManager.removeAllCookie();之前就是沒有加這句程式碼,才導致這個WebView第一次沒有生效,希望大家注意,要把之前WebView的Cookies清除掉,才能第一次就生效,可能的原因是WebView本來的session_id干擾了登陸了以後session_id,所以先清理掉之前的Cookies再同步,即可解決。