gpt4 book ai didi

android - Cookies & Webview - Android 中的 CookieSyncManager!

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:32:17 37 4
gpt4 key购买 nike

我有一个可让您登录页面的 Activity 。在下一个 Activity 中,如果登录成功,它应该显示一个基于 cookie 的网页。cookie 已被检索,我尝试使用以下代码将其放在 webView 上:

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

}

webView.setWebViewClient(new MyWebViewClient ());
webView.loadUrl("http://a_page.com/getpageiphone.aspx?p=home");

这是基于 StackOverflow 上其他问题的代码,但当我加载网页时,它似乎不起作用。我的代码似乎有问题,但我看不到哪里出了问题,我开始认为我做错了什么。

最佳答案

你用过这条线 -

 if (sessionCookie != null) {
cookieManager.removeSessionCookie();

}

.确保您每次都能收到新的 cookie。

看来您遇到了与我遇到的相同问题,请查看以下链接 -

removeSessionCookie() issue of android (code.google.com)

它说 removeSessionCookie() 是在线程中实现的,所以无论何时调用它;线程启动,在调用 setCookie(url, cookieString); 后,它会删除您刚刚设置的新 cookie。因此,对于某些设备,它运行良好,因为 removeSessionCookie() 已经执行,而对于某些设备,它删除了 cookie,我们遇到了这个问题。

通过使用 SystemClock.sleep(500); ,您只需让系统先完成 removeSessionCookie()

我建议您删除此 removeSessionCookie();,因为您只设置了一个 cookie,因此它不会与其他 cookie 冲突。您的代码将无缝运行。

关于android - Cookies & Webview - Android 中的 CookieSyncManager!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5729266/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com