0

我使用以下代码检查 Andriod 版本并相应地设置域。

domain = "domain.com";
int androidVersion = android.os.Build.VERSION.SDK_INT;
Log.d(TAG, "Android version" +androidVersion);
if(androidVersion >= 14){
    Log.d(TAG, "version is greater than 14");
    domain = ".domain.com";
}

并设置cookie。我使用以下代码:

CookieManager cookieManager = CookieManager.getInstance();
if(!cookie.equals("")){
    cookieManager.setCookie(domain, cookie);
}
try{
    CookieSyncManager.getInstance().sync();
}catch(IllegalStateException e){
    e.printStackTrace();
}

此代码在低于 17 的版本上运行良好。当我检查刚刚在 javascript 上设置的 cookie 时。我在 android 版本 17 上看不到它。任何帮助将不胜感激。

谢谢

4

2 回答 2

1

setCookie 的第一个参数应该是一个完整的 URL,例如“http://domain.com/”。此外,如果您使用的是 WebView,则 cookie 不会立即生效。您可以尝试将其与 CookieSyncManager 同步。

http://developer.android.com/reference/android/webkit/CookieSyncManager.html

于 2012-11-26T21:24:57.073 回答
0

希望对你有帮助 ??这是我在我的应用程序中写的,它会起作用。

Cookie sessionCookie = LoginWebView.cookie;
CookieSyncManager.createInstance(webview.this);
CookieManager cookieManager = CookieManager.getInstance();
if (sessionCookie != null) {
    cookieManager.removeSessionCookie();
    String cookieString = sessionCookie.getName();
    Log.v(TAG, "sync cookies: " + cookieString);
    cookieManager.setCookie(domain, cookieString);
    CookieSyncManager.getInstance().sync();

}
于 2012-12-27T08:12:22.643 回答