关于android webview 设置cookie的问题

转自:http://blog.csdn.net/encienqi/article/details/7912733

我们在android中访问网络经常会用到Apache的HttpClient,用此类去访问网络获取数据,

但是在写android界面的时候又时不时的会用到一些WebView组件,这时候访问一个以经登录的页面的时候cookie设置就有个问题

在HttpClient中保存下来的Cookie怎么设置到WebView组件里,让WebView也保持住Cookie状态,也就是登录状态呢?

CookieSyncManager和CookieManager就是做这种事的,下面来看代码里怎么设置Cookie让WebView也保持登录状态:

Java代码  

  1. /**
  2. * 同步一下cookie
  3. */
  4. public static void synCookies(Context context, String url) {
  5. CookieSyncManager.createInstance(context);
  6. CookieManager cookieManager = CookieManager.getInstance();
  7. cookieManager.setAcceptCookie(true);
  8. cookieManager.removeSessionCookie();//移除
  9. cookieManager.setCookie(url, cookies);//cookies是在HttpClient中获得的cookie
  10. CookieSyncManager.getInstance().sync();
  11. }

在android里面在调用webView.loadUrl(url)之前一句调用此方法就可以给WebView设置Cookie

注:这里一定要注意一点,在调用设置Cookie之后不能再设置

Java代码  

  1. webView.getSettings().setBuiltInZoomControls(true);
  2. webView.getSettings().setJavaScriptEnabled(true);

这类属性,否则设置Cookie无效。

时间: 2024-10-04 04:26:39

关于android webview 设置cookie的问题的相关文章

【转】android webview设置内容的字体大小

Enum for specifying the text size. SMALLEST is 50% SMALLER is 75% NORMAL is 100% LARGER is 150% LARGEST is 200%原文:http://www.cnblogs.com/yourancao520/archive/2012/06/14/2548900.html /**  * webview  */ WebView wv; /**  * Manages settings state for a W

Android(安卓)WebView设置cookie

最近两天一直想用安卓模拟登陆,利用新的WebView显示登陆后可以访问的页面,但是不管怎么访问需要登陆后才能访问的页面,还是跳回到登陆页,后来网上看了下是cookie没有设置,找了半天才到到合适的设置方法: 登陆方法: private Cookie cookie; public static HttpContext localContext; <span style="color: rgb(255, 0, 0); "><strong>public static

Android WebView保存Cookie登录

因项目需要,需要在App中嵌入网页,使用Nativie方式登录,然后将cookie保存到WebView中,实现免登录功能.同步Cookie到WebView的方法网上有大量的参考资料,也可以参考下面的代码: /** * Sync Cookie */ private void syncCookie(Context context, String url){         try{             Log.d("Nat: webView.syncCookie.url", url);

iOS webView 设置cookie

在 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType中添加代码 NSDictionary *dic = @{@"UserToken":[WCAppGlobal defaulAppGlobal].isLogin ? [self _getToken] : @

android webview设置和遇到的坑

WebSettings webSettings = webView.getSettings(); webSettings.setCacheMode(webSettings.LOAD_NO_CACHE);//设置不缓存 webSettings.setJavaScriptEnabled(true); //支持JS if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { webView.getSettings().setMixedCon

【Android】WebView设置背景色

Android WebView 设置背景色为透明色 在网上找了 好多的方法都试过了 都不行 1.直接设置成background 为透明色 或者透明图片 (无效) android:background="@android :color/transparent" 2.设置加载的html为透明背景图片(无效) String mobileDetails = "<html xmlns=\"http://www.w3.org/1999/xhtml\">&l

Android WebView控件知道这些就够了

刚做过的一个项目中用到了webview的一些功能,在开发过程中遇到了各种各样的问题,在此记录下来供大家参考:(下面代码是从项目中抽取出来的,供参考) 1.怎么给webview添加加载进度条? 2.怎么给webview设置cookie? 3.怎么在webview中让服务端可以直接调用APP端的方法? (补充:因为之前我在做这个项目的时候,百度 谷歌了很多,都描述的不是很详细,所以我详细的给过一遍,希望能帮助到大家) 主要就是这三个问题的解决,下面我们一个一个的解释. 1.在webview中添加加载

Android WebView启动Chromium渲染引擎的过程分析

Android WebView加载了Chromium动态库之后,就可以启动Chromium渲染引擎了.Chromium渲染引擎由Browser.Render和GPU三端组成.其中,Browser端负责将网页UI合成在屏幕上,Render端负责加载网页的URL和渲染网页的UI,GPU端负责执行Browser端和Render端请求的GPU命令.本文接下来详细分析Chromium渲染引擎三端的启动过程. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! Andro

Android WebView 参数设置明细!

WebView wv = new WebView(content); WebSettings ws = wv.getSettings(); 设置参数明细如下: setPluginsEnabled(true) ;//支持插件 setUserWideViewPort(false) ;//将图片调整到适合webview的大小 setSupportZoom(true) ;//支持缩放 setLayoutAlgorithm(LayoutAlgrithm.SINGLE_COLUMN) ;//支持内容从新布局