2013-05-29 5 views
3

У меня проблемы с настройкой cookie в Android WebView. Я использую следующий код:Как установить cookie в Android WebView

CookieSyncManager.createInstance(this); 
CookieManager cookieManager = CookieManager.getInstance(); 
cookieManager.removeAllCookie();  
cookieManager.setAcceptCookie(true); 
cookieManager.setCookie(url, cookie); 
CookieSyncManager.getInstance().sync(); 

Но это не работает. Я также попытался добавить заголовки, используя метод WebView loadUrl(String url, Map<String, String> additionalHttpHeaders); но все же он не работает. Есть ли способ сделать это?

+0

Предполагая, что вы пытаетесь передать куки-файл из DefaultHttpClient в WebView, у меня была такая же проблема вчера, и я попытался выполнить то, что вы пробовали. Это не прямой ответ на ваш вопрос, но в конечном итоге то, что сработало для меня, было извлечение контента с помощью DefaultHttpClient и передача результата в WebView через webView.loadData (htmlString, «text/html», «UTF-8»); , Конечно, это не идеально, но на данный момент это достаточно хорошо обходной путь. – ErikR

+0

Можете ли вы вставить пример строки cookie, которую вы передаете? – qwertzguy

+0

@althaf_tvm Получили ли вы свое решение? – Hamid

ответ

0

Пожалуйста, попробуйте этот

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

Я пробовал, но все еще не работал. Я даже добавил Thread.sleep(), чтобы дать менеджеру cookie некоторое время для установки и удаления файлов cookie, но это не сработало. –