安卓学习笔记---AndroidWebview里设置Cookie遇到的坑
2016-08-19 14:37
846 查看
我们一般在使用WebView去加载H5界面的时候都会同步一下Cookie,一般的都会这么做:
在HttpClient中保存下来的Cookie怎么设置到WebView组件里,让WebView也保持住Cookie状态,也就是登录状态呢?
CookieSyncManager和CookieManager就是做这种事的,下面来看代码里怎么设置Cookie让WebView也保持登录状态:
Java代码
/**
* 同步一下cookie
*/
pubip
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之后不能再设置
Java代码
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setJavaScriptEnabled(true);
这类属性,否则设置Cookie无效。
我原来一直是这么设置的,因为后台说需要这两个字段:
可是我用代理查看了一下,后台只能看到一个值就是 JSESSIONID,但是看不到这个上传的token和deliveryManName
于是我就纳闷了,怎么会这样呢,感觉一直都是这样的啊,怎么尝试都是只有一个值
后台我说看看这样的方法行不行
估计设置一个Cookie只能识别一个吧,哎,受教了,有坑有木有。
在HttpClient中保存下来的Cookie怎么设置到WebView组件里,让WebView也保持住Cookie状态,也就是登录状态呢?
CookieSyncManager和CookieManager就是做这种事的,下面来看代码里怎么设置Cookie让WebView也保持登录状态:
Java代码
/**
* 同步一下cookie
*/
pubip
// 设置cookie public static void syncCookie(Context context) {
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之后不能再设置
Java代码
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setJavaScriptEnabled(true);
这类属性,否则设置Cookie无效。
我原来一直是这么设置的,因为后台说需要这两个字段:
JSESSIONID和deliveryManName
cookieManager.setCookie(cookieUrl, "JSESSIONID=" + HcyHttpClient.getCookie("JSESSIONID") + ";token=" + HcyHttpClient.getCookie("token")+";deliveryManName=" + HcyHttpClient.getCookie("deliveryManName") );
可是我用代理查看了一下,后台只能看到一个值就是 JSESSIONID,但是看不到这个上传的token和deliveryManName
于是我就纳闷了,怎么会这样呢,感觉一直都是这样的啊,怎么尝试都是只有一个值
后台我说看看这样的方法行不行
cookieManager.setCookie(cookieUrl, "deliveryManName=" + HcyHttpClient.getCookie("deliveryManName")); cookieManager.setCookie(cookieUrl,"JSESSIONID="+HcyHttpClient.getCookie("JSESSIONID")); cookieManager.setCookie(cookieUrl,"token="+HcyHttpClient.getCookie("token"));
我一个一个的去设置,看行不行,测试之后,果然都有了
估计设置一个Cookie只能识别一个吧,哎,受教了,有坑有木有。
相关文章推荐
- (转)安卓学习笔记---AndroidWebview里设置Cookie遇到的坑
- Android(安卓)WebView设置cookie
- 安卓学习笔记---完美解决Android的WebView加载失败(404,500),显示的自定义视图
- 安卓学习笔记---解决Android签名混淆后WebView与JS交互失效的问题
- Android开发学习笔记:浅谈WebView
- Android 学习笔记(七):WebView
- Android开发学习笔记:浅谈WebView
- 在Android的WebView中给一级域名设置cookie
- Android开发学习笔记:浅谈WebView (转)
- Android开发学习笔记:浅谈WebView
- Android开发学习笔记:浅谈WebView
- Android开发学习笔记:浅谈WebView
- Android学习之笔记---WebView的使用
- android开发学习笔记:浅谈WebView
- android webview里设置cookie
- Android开发学习笔记:浅谈WebView
- Android开发学习笔记:浅谈WebView
- Android开发学习笔记:浅谈WebView
- Android开发学习笔记:浅谈WebView
- 转 Android开发学习笔记:浅谈WebView