关闭

WebView调用loadUrl时候带上cookie信息

标签: androidappjava应用手机
1514人阅读 评论(0) 收藏 举报
分类:

今天分享一个小方法~

项目中有一个界面是一个纯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()了。




1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:83976次
    • 积分:979
    • 等级:
    • 排名:千里之外
    • 原创:28篇
    • 转载:9篇
    • 译文:0篇
    • 评论:102条
    文章分类
    最新评论