我使用以下代码检查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版本上看到它。 任何帮助将不胜感激。
由于
答案 0 :(得分:1)
setCookie的第一个参数应该是一个完整的URL,如“http://domain.com/”。此外,如果您使用的是WebView,则cookie不会立即生效。您可以尝试将其与CookieSyncManager同步。
http://developer.android.com/reference/android/webkit/CookieSyncManager.html
答案 1 :(得分: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();
}