CookieSyncManager.createInstance(getApplicationContext());
CookieManager.getInstance().setAcceptCookie(true);
webView = (WebView)findViewById(R.id.webView1);
CookieSyncManager.getInstance().sync();
还尝试使用JUST:
CookieManager.getInstance().setAcceptCookie(true);
在每个可以想象的地方,我仍然无法接受饼干?怎么回事?
答案 0 :(得分:2)
我遇到了同样的问题。尝试了stackoverflow上所有答案的几种组合,但WebView只是忽略了cookie。
最终为我工作的解决方案是使用CookieManager手动设置cookie。
最初,我使用不正确的URL调用CookieManager上的setCookie(),而我的WebView仍然忽略了cookie。你需要找到正确的url,这很可能是你将调用webView.loadUrl(url)的url域。如果您的webview执行多次重定向,则可能需要尝试使用不同的域来查找正确的域以设置Cookie。我必须将其设置为出现在其中一个重定向中的域,而不是我称之为webView.loadUrl(url)的url域。
final CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(context);
final CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();
//Set the cookies one by one. You might extract these cookies from the headers like I did.
//They were saved under the key "Set-Cookie". Or you might extract them from the http
//client like so httpclient.getCookieStore().getCookies() depending on your implementation.
// Assuming you have List<String> cookies to work with:
for (String cookie : cookies)
{
cookieManager.setCookie("http://exampledomain.com", cookie.split(";")[0]);
}
cookieSyncManager.sync();
webView.loadUrl(url);