我需要让 Android 上的 Crosswalk(在 Cordova 项目中)使用我通过 Apache HttpClient 收集的一些 cookie。但是我不确定如何实现这一点。我尝试使用 XWalkCookieManager 进行试验,但我认为我对 XWalkCookieManager 所做的一切都被忽略了。我将在哪里初始化 cookie 管理器?这还支持吗?
//cookieStore contains the cookies I got via a request from the Apache
// HttpClient.
List<Cookie> cookies = cookieStore.getCookies();
for (int i = 0; i < cookies.size(); i++) {
Cookie cookie = cookies.get(i);
String cookieString = buildCookieStringFromCookie(cookie);
// This is a XWalkCookieManager I initialized earlier but it doesn't do anything
//as far as I can tell.
cookieManager.setCookie(cookie.getDomain(),cookieString);
}
我真的很感激任何帮助,这是目前唯一让我无法成功使用 Crosswalk 的事情。
我也尝试过使用标准的Android cookie Manager via CookieManager.getInstance().setCookie(cookie.getDomain(), cookieString);
,但这似乎也被Crosswalk忽略了。
最好的,
安德烈亚斯
//编辑以供将来参考:
问题是 Crosswalk 期望 cookie url 以 https:// 开头,而原生 Android webview 不是(或者相反,我不确定了)。现在正常工作是将cookie设置两次,一次不使用https,一次使用https:
mCookieManager.setCookie(cookie.getDomain(), cookieString);
mCookieManager.setCookie("https://" + cookie.getDomain(), cookieString);