настройка куки в WebView android - PullRequest
14 голосов
/ 22 марта 2011

Я пытаюсь установить несколько файлов cookie на моем WebView, чтобы открыть браузер с тем же сеансом, что и в моем приложении.

Я прочитал много ответов, но они не работают для меня.Единственное решение, которое я нашел, - это loadUrl, жестко закодировать данные cookie в extraHeaders, но, как и ожидалось, это работает только для этих запросов и не поддерживает сеанс.

Код, которыйУ меня есть:

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() возвращает правильные данные, но когда я читаю куки с сервера, они пусты.Что случилось?Пожалуйста, порекомендуйте.Спасибо !!!

Ответы [ 2 ]

7 голосов
/ 23 марта 2011

Решено !!!! проблема с webView, я не знаю, что случилось, но если я создаю

WebView webView = new WebView(Activity.this);

это работает. Если я читаю веб-вид из активности с findViewById(), он не работает.

Также, если вам нужно установить список файлов cookie, которые вы ранее получали с сайта. Все, что вам нужно сделать, это использовать for-loop, чтобы пройти и установить их все. Это помогло мне решить ситуацию

5 голосов
/ 29 декабря 2012
CookieSyncManager cookieSyncManager = CookieSyncManager.createInstance(mWebView.getContext());
...
cookieSyncManager.sync();

является причиной проблемы. Вы должны сделать так:

CookieSyncManager.createInstance(mWebView.getContext());
...
CookieSyncManager.getInstance().sync();

И не нужно будет вручную создавать WebView ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...