您的位置:首页 > 移动开发

WebView调用loadUrl时候带上cookie信息

2015-11-19 23:03 288 查看
今天分享一个小方法~

项目中有一个界面是一个纯webview,为了让这个界面在发布后也可以随时修改样式,当时就没有选择传统的android xml的布局界面,而是选择跳转到一个html界面。但是这个html也不是一个静态页面,他的界面会根据用户不同的等级做出相应的改变。那么这时候,就需要传参数,将用户的信息塞到这个http的请求中。

/* 让webviewloadurl的时候带上cookie信息 */
private void setCookie(){
/* 获取cookie */
String key = "key";
String value = "value";
String jump_url = "http://192.168.0.5:8889/banner/list.pb"
//将信息直接存储在cookie中
BasicClientCookie newCookie = new BasicClientCookie(key, value);
newCookie.setDomain(getDomainByUrl(jump_url));
String cookieString = newCookie.getName() + "=" + newCookie.getValue() + "; domain=" + newCookie.getDomain();

CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();
//第一个参数是域名,第二个参数是固定格式的字符串
cookieManager.setCookie(getDomainByUrl(jump_url), cookieString);
CookieSyncManager.getInstance().sync();
}


private String getDomainByUrl(String url){
// 表达式对象(xx.xx.xx.xx)
Pattern p = Pattern.compile("\\d+\\.\\d+\\.\\d+\\.\\d+");
// 创建 Matcher 对象
Matcher m = p.matcher(url);
String domain = "";
if(m.find()){
domain = m.group();
}
return domain;
}


调用完setCookie()方法之后,就可以调用loadUrl()了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: