我们在android中访问网络经常会用到Apache的HttpClient,用此类去访问网络获取数据,
但是在写android界面的时候又时不时的会用到一些WebView组件,这时候访问一个以经登录的页面的时候cookie设置就有个问题
在HttpClient中保存下来的Cookie怎么设置到WebView组件里,让WebView也保持住Cookie状态,也就是登录状态呢?
CookieSyncManager和CookieManager就是做这种事的,下面来看代码里怎么设置Cookie让WebView也保持登录状态:
/**
* 同步一下cookie
*/
public static void synCookies(Context context, String url) {
CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();//移除
cookieManager.setCookie(url, cookies);//cookies是在HttpClient中获得的cookie
CookieSyncManager.getInstance().sync();
}
在android里面在调用webView.loadUrl(url)之前一句调用此方法就可以给WebView设置Cookie
注:这里一定要注意一点,在调用设置Cookie之后不能再设置webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setJavaScriptEnabled(true);
这类属性,否则设置Cookie无效。
分享到:
相关推荐
### Android Cookie 获取与设置以及 WebView 的 Cookie 同步 在 Android 开发中,Cookie 的管理和同步对于维护用户会话状态至关重要。特别是在使用 HttpClient 发起网络请求时,保持客户端与服务器端 Session 的...
解决Android webview设置cookie和cookie丢失的问题 Android webview是一个非常常用的技术,然而在使用中经常会遇到cookie丢失的问题,导致登陆失败等情况。今天,我们将探索解决Android webview设置cookie和cookie...
2. **设置WebView Cookie Manager**:Android 4.0及以上版本提供了`CookieManager`类,用于管理WebView的cookie。首先,你需要初始化`CookieManager`,启用第三方cookie支持,并清空旧的cookie存储。 ```java ...
Android Webview 拦截 Ajax 请求的详细讲解 Android Webview 提供了页面加载及资源请求的钩子,但是对于 H5 的 Ajax 请求并没有提供干涉的接口。这意味着我们不能在 Webview 中干涉 JavaScript 发起的 HTTP 请求,...
这可能涉及到对WebView的配置进行调试,如启用JavaScript支持,设置User-Agent,处理Cookie,以及处理混合内容等。 总的来说,处理`iframe + target="_blank"`在Android WebView中的问题需要对WebView的工作原理有...
Android-X5WebView基本封装和使用 通过OkHttp拦截器、自定义CookieJar有效完成客户端与H5端的Cookie同步管理 监听WebView的加载进度 滚动条的设置(隐藏或者显示,内侧显示还是外侧显示) 优化X5WebView的预加载问题...
在Webview加载页面前,我们可以将这个cookie设置到Webview,这样再次加载页面时,Webview就会带着cookie请求,服务器识别到session后,就能保持用户的登录状态。 3. **拍照和选择相册图片上传** Android提供了`...
在进行APP+H5混合开发的时候...这种情况在Android开发中比较常见,因为Android不会自动同步cookie到WebView。做iOS开发则不用担心这个问题,因为iOS内部已经实现了cookie同步.本文就是一个小的事例,从登录到同步cookie
6. **Webview配置**:调整Webview的其他设置,如设置JavaScript允许执行,禁用第三方Cookie,根据需要调整缩放等。 ```java webView.getSettings().setAllowFileAccess(true); webView.getSettings()....
3. **设置cookie**:一旦获取到cookie,我们需要将其设置到WebView中。在Android中,可以使用`WebSettings`的`setHttpCookieEnabled`方法开启cookie支持,然后通过`addHeader`或`setCookie`方法设置cookie。在iOS中...
总之,实现Android WebView的新浪微博自动登录涉及WebView的初始化、JavaScript注入、Cookie管理以及登录状态的持久化。这个过程需要对Android开发、网络请求、以及可能的安全问题有深入理解。通过以上步骤,你可以...
Android使用WebView加载登录的html界面,则通过登录成功获取Cookie并同步,可以是下一次不用登录也可以查看到个人信息,注:如果初始化加载登录,可通过缓存Cookie信息来验证是否要加载登录界面。Cookie信息包含了你...
在Android应用开发中,WebView是一个常用的组件,它允许我们在原生应用中内嵌网页内容。然而,当涉及到URL重定向时,可能会出现一些棘手的问题。这篇文章将详细讲解如何解决Android WebView的重定向问题。 首先,...
在Android应用程序开发中,WebView是不可或缺的一部分,它允许在应用内部加载和显示网页内容。然而,WebView也成为了安全问题的重灾区,因为它可能被攻击者利用来实施各种攻击。以下是一份详细的Android WebView安全...
在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序内部加载和显示网页内容,而无需离开应用。WebView是Android SDK中的一个类,它继承自View,并实现了WebViewClient和WebChromeClient接口,使得...
Android WebView 与 WebKit 内核深入讲解 Android WebView 是 Android 平台上的一种基于 WebKit 内核的浏览器控件,可以用来在移动应用程序中显示网页内容。WebKit 是一个开源的浏览器网页排版引擎,包含 WebCore ...
在Android应用中,我们首先需要实例化WebView并将其添加到布局中,然后设置WebView的一些基本属性,例如启用JavaScript支持: ```java WebView webView = findViewById(R.id.web_view); webView.getSettings()....