我正在调用一项服务以将 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/