flipper83 flipper83 - 3 months ago 17
Android Question

setting Cookies in WebView android

I'm trying to set some cookies on my

WebView
to open a browser with the same session that I have on my app.

I read a lot of answers but they don't work for me. The only solution I've found is in the
loadUrl
, hardcode the cookie data in
extraHeaders
, but as expected this only works for this requests, and doesn't maintain the session.

The code that I have is:

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()
returns the correct data, but when I read the cookies from the server, those are empty. What is wrong? Please advise.
Thank you!!!

Answer

Solved!!!! the problem is with the webView, I dont know what happend, but If I create the

WebView webView = new WebView(Activity.this);

it works. If I read the webview from activity with findViewById() it doesn't work.

Also if you need to set a list of cookies that you received previously from a website. All you have to do is use a for-loop to go through and set all of them . It helped me to solve the situation