0

次のコードを使用して Android のバージョンを確認し、それに応じてドメインを設定します。

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";
}

そしてクッキーを設定します。私は次のコードを使用します:

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 の最初の引数は、「http://domain.com/」のような完全な URL にする必要があります。また、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 に答える