CookieManager中有多个Cookie

sna*_*msm 5 cookies android android-webview android-cookiemanager

让我们为cookie存储做准备:

CookieSyncManager.createInstance(getApplicationContext());
CookieSyncManager.getInstance().startSync();
CookieManager.getInstance().setAcceptCookie(true);
Run Code Online (Sandbox Code Playgroud)

然后,我手动放入一些cookie,让我们说PHPSESSIDRANDOM

CookieManager.getInstance().setCookie("domain.com", "PHPSESSID="+phpSession);
CookieManager.getInstance().setCookie("domain.com", "RANDOM="+random);
Run Code Online (Sandbox Code Playgroud)

我们使用以下命令检查它是否正常工作:

CookieManager.getInstance().getCookie("domain.com");
Run Code Online (Sandbox Code Playgroud)

并得到

PHPSESSID=dba4ff392agd39b5951d10a91a0a7b56; RANDOM=266284790:1466147978:c91d0896bac59e0b
Run Code Online (Sandbox Code Playgroud)

一切看起来都不错,但是当我导航到应用程序中的“ WebView活动” 之一时,该活动会打开同一域的网站并设置cookie,然后当我像上面那样打印cookie时,它看起来像这样:

PHPSESSID=dba4ff392agd39b5951d10a91a0a7b56;
RANDOM=266284790:1466147978:c91d0896bac59e0b;
PHPSESSID=9ecb5156cf8fc3190fbc69fd13393243;
RANDOM=265078219%3A1463147975%3Ad0448d163e9b2123
Run Code Online (Sandbox Code Playgroud)

重复的条目...之后,我再次手动设置例如RANDOM与setCookie

PHPSESSID=dba4ff392agd39b5951d10a91a0a7b56; 
RANDOM=111111111:2222222222:33333336bac59e0b;
PHPSESSID=9ecb5156cf8fc3190fbc69fd13393243; 
RANDOM=265078219%3A1463147975%3Ad0448d163e9b2123
Run Code Online (Sandbox Code Playgroud)

设置的值WebView不会被覆盖,只有我的“手动”输入...如何强制WebView使用我之前设置的cookie或已设置的覆盖?

pau*_*dal 0

  private void setCookieManager(String auth_token) {
    CookieSyncManager manager = CookieSyncManager.createInstance(this);
    CookieManager cookieManager = CookieManager.getInstance();
    cookieManager.setAcceptCookie(true);
    cookieManager.removeSessionCookie();
    cookieManager.setCookie(auth_token);

    manager.sync();
}
Run Code Online (Sandbox Code Playgroud)

我认为您只是没有正确设置 cookie 管理器。尝试一下