我试图在我的WebView上设置一些cookie,以打开与我的应用程序上的会话相同的浏览器。
我读了很多答案,但它们对我不起作用。我找到的唯一解决方案是在loadUrl中,在extraHeaders中硬编码cookie数据,但正如预期的那样,这只适用于此请求,不维护会话。
我的密码是:

CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(mWebView.getContext());
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();
cookieManager.setCookie("http://xx.xxx.example.com","mid="+MySession.GetSession().sessionId+" ; Domain=.example.com");
cookieSyncManager.sync();

String cookie = cookieManager.getCookie("http://xx.xxx.example.com");

Log.d(LOGTAG, "cookie ------>"+cookie);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new TuWebViewClient());
mWebView.loadUrl("http://xx.xx.example.com");

getCookie()返回正确的数据,但当我从服务器读取cookies时,这些数据是空的。怎么了?请告知。
谢谢您!!!!

最佳答案

解决了的!!!!!问题在于webview,我不知道发生了什么,但是如果我创建

WebView webView = new WebView(Activity.this);

它起作用了。如果我从findViewById()活动中读取webview,它将不起作用。
另外,如果您需要设置以前从网站收到的cookie列表。
你所要做的就是用一个for-loop来检查和设置它们。它帮助我解决了这个问题

08-18 07:07
查看更多