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);
}
}