CookieManager和CookieSyncManager不会将cookie同步到ICS中的webview(适用于所有以前的API级别)

背景:

我通过我的应用程序获取cookie,并通过向http发送请求在内部使用它们。 用户可以切换到webview任何给定的时间,在这种情况下,我同步/注入cookies到webView 。

使用CookieSyncManager将cookie同步到webview的代码 :

CookieSyncManager.createInstance(a); CookieManager cm = CookieManager.getInstance(); cm.setCookie(domain, cookieName + "=" + cookieValue); CookieSyncManager.getInstance().sync(); 

这适用于 API 15+(Android 4.0,冰淇淋三明治) 之外的 所有 API级别。 CookieManager API不被弃用。

什么是造成这个问题,并有任何解决方法?

Solutions Collecting From Web of "CookieManager和CookieSyncManager不会将cookie同步到ICS中的webview(适用于所有以前的API级别)"

你可以尝试Apache的DefaultHttpClient为你做这个工作,我不认为它已经改变了冰淇淋三明治。

我find了这个样本 ,但是这里有更多

最近我遇到了同样的问题,我发现是我的错误。 问题是我设置域的方式(但它的工作,直到API 15)。 尝试使用“.company.com”而不是“company.com”作为域名前缀。

我没有从客户端注入cookie,但我发现ICS cookie没有保存。

一个解决办法是使用本地存储,而不是cookie。 您不需要Cookie同步pipe理器。 这适用于ics和v2 + android。

在我的情况下,我没有一个域,所以上述似乎不相关 – 我在应用程序的资产文件夹中使用本地HTML文件。

这个工程在ics和v2的android

请享用

java的

 // java WebSettings webSettings = myWebView.getSettings(); webSettings.setDomStorageEnabled(true); // localStorage // eg, if your package is www.myapp.whatever; webSettings.setDatabasePath("/data/data/www.myapp.whatever/databases/"); 

HTML

 // javascript function createCookie(name,value,days,path) { localStorage.setItem(name,value); } function readCookie(name) { return localStorage.getItem(name); } 

这是你的答案: 在集成电路,不能得到cookie

它是造成这个问题的领域。

对于15+以后的所有版本,您必须使用**。** domain.com,而不是domain.com。