安卓Webview读取cookies

11
我有以下代码用于在Webview中显示网页:

我有以下代码用于在Webview中显示网页:

WebView myWebView = (WebView) findViewById(R.id.webView1);
myWebView.loadUrl("http://the.url.com");
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);

现在我想读取webview的cookie。这可行吗?


它正在工作,页面上有两个cookie。我如何选择仅第一个或第二个cookie及其值。 - Idrizi.A
请阅读此处 https://dev59.com/81bUa4cB1Zd3GeqPBLfV。 - Pankaj Kumar
这两个 cookie 是否与同一个 URL 相关联? - Darpan
1个回答

29

虽然有些晚了,但这可能对某人有所帮助

您可以通过以下方式获取 cookie 值

public String getCookie(String siteName,String CookieName){     
    String CookieValue = null;

    CookieManager cookieManager = CookieManager.getInstance();
    String cookies = cookieManager.getCookie(siteName);   
    if(cookies != null){
        String[] temp=cookies.split(";");
        for (String ar1 : temp ){
            if(ar1.contains(CookieName)){
                String[] temp1=ar1.split("=");
                CookieValue = temp1[1];
            }
        }              
     }
     return CookieValue;    
}

编辑

注意事项:

如果您加载的URL是像http://sitedomain.com(没有www),则使用此方法将不起作用的siteNamewww


Cookie名称不需要使用大写字母传递!! @NicolaeSurdu - vimal1083
抱歉,太累了没查看历史记录。已编辑答案以反映当前状态。 - Nicu Surdu
3
这是一个不错的解决方案,但还不够准确。你不应该用 "=" 来分割 cookie,因为右侧可能也会包含 "=". 所以,你应该只用 split("=", 2) 来将左右部分分开一次。 - CoolMind
如果你只想检索第一个,我认为在找到它后你需要休息一下。 - Elye
我需要帮助获取URL(https://www.dailymotion.com/)中包含www的cookies。 - hassan mirza

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接