无法在Android版本17上为webview设置cookie

时间:2012-11-26 21:12:51

标签: android android-webview

我使用以下代码检查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版本上看到它。 任何帮助将不胜感激。

由于

2 个答案:

答案 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();

}