android - 将 Cookies 注入(inject) WebView

标签 android cookies webview

我正在调用一项服务以将 Cookie 作为 JSONArray 获取,如下所示

{"domain":"blabla.com","expirationDate":1896127200,"hostOnly":false,"httpOnly":false,"name":"__ssid","path":"\/","sameSite":"no_restriction","secure":false,"session":false,"storeId":"0","value":"392997aa-ce67-4d96-a73d-de0ad794f7bf","id":1}

然后像这样解析这些cookie

Cookie cookie = new Cookie.Builder()
                        .domain(checkDomain(jsonObject.optString("domain")))
                        .expiresAt(jsonObject.optLong("expirationDate"))
                        .name(jsonObject.optString("name"))
                        .path(jsonObject.optString("path"))
                        .value(jsonObject.optString("value"))
                        .build();

然后像这样注入(inject)cookie

CookieSyncManager.createInstance(this);
    CookieManager cookieManager = CookieManager.getInstance();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        cookieManager.setAcceptThirdPartyCookies(webView, true);
    } else {
        cookieManager.setAcceptCookie(true);
    }
    cookieManager.removeAllCookie();


    if (cookies != null) {
        for (Cookie cookie : cookies) {
            String cookieString = cookie.name() + "=" + cookie.value() + "; domain=" + cookie.domain();
            cookieManager.setCookie(cookie.domain(), cookieString);
            CookieSyncManager.getInstance().sync();
        }
    }

但是当我将 https://blabla.com 加载到 WebView 中时,cookie 不起作用,我是否遗漏了什么?

请帮忙

最佳答案

这是我使用的,它工作得很好:

    CookieManager.getInstance().setCookie(treeUrl, cookieString);            
    CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
    webView.loadUrl("www.example.com");

如果您必须向 cookie 中注入(inject) JSON,只需使用 yourJson.toString()

关于android - 将 Cookies 注入(inject) WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57891976/

相关文章:

android - WebView setDefaultZoom 弃用

javascript - Android 5.1 WebView javascript 问题

dagger2 和 kotlin 的 Android 单元测试问题

android - 如何更改从我的 Android 应用程序开始的 Activity ?

android - dumpsys meminfo 中 Lost RAM 的实际含义是什么

asp.net - .NET FormsAuthentication 和持久性 cookie 的密码更改安全漏洞?

php - 如何使用 Codeigniter session 库创建 "remember me checkbox"?

android - 与其他字符相比,c++/Arduino 是否以不同方式处理 '?'

java - 在 HttpServletRequest 中设置 Cookie

ios - Swift - WebView 在加载时不检测滑动