1. 程式人生 > >android webview 儲存cookie

android webview 儲存cookie

在用webview登陸某網站web客戶端時,需要儲存cookie,這樣退出再進入時就不用二次登陸,android使用webview解決Cookie問題的方法是————————————————
public class WebClientActivity extends Activity {
    WebView achieveView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview_achieve);
        achieveView = (WebView) findViewById(R.id.webView);  
         
         achieveView.getSettings().setJavaScriptEnabled(true);//設定使用夠執行JS指令碼  
         achieveView.getSettings().setBuiltInZoomControls(true);//設定使支援縮放  
         achieveView.getSettings().setLoadsImagesAutomatically(true);    
            achieveView.loadUrl("http://www.baidu.com/");  
            achieveView.setWebViewClient(new WebViewClient(){  
                @Override  
                public boolean shouldOverrideUrlLoading(WebView view, String url) {  
                    view.loadUrl(url);          // 使用當前WebView處理跳轉  
                    return true;                //true表示此事件在此處被處理,不需要再廣播  
                }  

//

/**********重新編輯*******************/

發現新東西:貌似不使用下面的紅色程式碼,即不復寫onPageFinished,只使用以上程式碼,就可實現cookie的儲存,目前猜測是webview可自動儲存cookie。。還在進一步探究

                @Override
                public void onPageFinished(WebView view, String url) {
                    super.onPageFinished(view, url);
                    CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(AchieveWebClientActivity.this);
                    cookieSyncManager.sync();
                    CookieManager cookieManager = CookieManager.getInstance();
                    cookieManager.setAcceptCookie(true);
                    System.out.println("aaa---"+cookieManager.getCookie("http://www.baidu.com/"));
                    System.out.println("是否有cookie---"+cookieManager.hasCookies());
                }


                //轉向錯誤時的處理  
                @Override  
                public void onReceivedError(WebView view, int errorCode,  
                        String description, String failingUrl) {  
                    Toast.makeText(AchieveWebClientActivity.this, "Oh no! " + description, Toast.LENGTH_SHORT).show();  
                }  
            });  
        }  
    //預設點回退鍵,會退出Activity,需監聽按鍵操作,使回退在WebView內發生  
    @Override   
        public boolean onKeyDown(int keyCode, KeyEvent event) {  
            if ((keyCode == KeyEvent.KEYCODE_BACK) && achieveView.canGoBack()) {  
                achieveView.goBack();  
                return true;  
            }  
            return super.onKeyDown(keyCode, event);  
        }  
    }