0

Я пытаюсь загрузить cookie в андроид веб-представление. следующий мой код Java.Попытка загрузить файлы cookie с url в android webview

final String link = "http://www.iitjeeacademy.com/mobile/question/CHE/AAH"; 

final String domain = "iitjeeacademy.com"; 

String authToken = LoginService.getCookie(); 

String cookie = "auth-token=" + authToken + "; csrf-token=mobile"; 

webView = (WebView) findViewById(R.id.webView); 

Map<String, String> cookieMap = new HashMap<String, String>(); 

cookieMap.put("Cookie", cookie); 


android.webkit.CookieSyncManager.createInstance(QuestionActivity.this); 
android.webkit.CookieManager.getInstance().setAcceptCookie(true); 

WebkitCookieManagerProxy coreCookieManager = new WebkitCookieManagerProxy(null, java.net.CookiePolicy.ACCEPT_ALL); 

java.net.CookieHandler.setDefault(coreCookieManager); 

android.webkit.CookieSyncManager.getInstance().sync(); 

final WebSettings settings = webView.getSettings(); 
settings.setLoadsImagesAutomatically(true); 
settings.setJavaScriptEnabled(true); 
settings.setDomStorageEnabled(true); 

webView.setWebViewClient(new CustomBrowser()); 
webView.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY); 
webView.loadUrl(link, cookieMap); 

private class CustomBrowser extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url){ 
     view.loadUrl(url); 
     return true; 
    } 
} 

WebView layout.xml

<WebView 
    android:id="@+id/webView" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"/> 

Я пытался реализовать WebkitCookieManagerProxy для настраиваемого хранения печенья, как показано в ->Pass cookies from HttpURLConnection (java.net.CookieManager) to WebView (android.webkit.CookieManager).

Но он не работает. Когда я запускаю этот код, веб зрения я получаю перенаправлены на главную страницу сайта ...

ответ

1
WebView webview = (WebView) this.findViewById(R.id.webView); 
    final WebSettings settings = webview.getSettings(); 
    settings.setJavaScriptEnabled(true); 
    settings.setAppCacheEnabled(true); 
    settings.setBuiltInZoomControls(true); 
    settings.setPluginState(WebSettings.PluginState.ON); 

    webview.setWebChromeClient(new WebChromeClient()); 

    CookieSyncManager.createInstance(YourClass.this); 
    CookieManager cookieManager = CookieManager.getInstance(); 
    cookieManager.removeSessionCookie(); 
    cookieManager.setCookie("your domain name", cookie); 
    CookieSyncManager.getInstance().sync(); 

    Map<String, String> header = new HashMap<String, String>(); 
    header.put("Cookie", cookie); 
    if(isConnected()) { 
     webview.loadUrl(url, header); 
    } 
    else { 
     webview.setVisibility(View.GONE); 
     textView.setText("Your custom error message."); 
     textView.setVisibility(View.VISIBLE); 
    } 
+0

почему 'textView.setText ("персонализированное сообщение об ошибке.");'? откуда она взялась? – Omkar

+0

Фактически в моем коде я сначала проверяю, подключен ли пользователь к интернету или нет, если веб-просмотр не показывает URL-адрес пользователю, который может быть опасным в некоторых случаях, это полностью зависит от вас, как вы хотите использовать этот код, основной веб-просмотр Код файла cookie заканчивается методом loadUrl() –

+0

Нет. это не работает ... по-прежнему перенаправляется на домашнюю страницу :( – Omkar

0

** Это может помочь **

WebView webview = (WebView) this.findViewById(R.id.wv_file); 
    final WebSettings settings = webview.getSettings(); 
    settings.setJavaScriptEnabled(true); 
    settings.setAppCacheEnabled(true); 
    settings.setBuiltInZoomControls(true); 
    settings.setPluginState(WebSettings.PluginState.ON); 

    webview.setWebChromeClient(new WebChromeClient()); 

    CookieSyncManager.createInstance(ActivityName.this); 
    CookieManager cookieManager = CookieManager.getInstance(); 
    cookieManager.removeSessionCookie(); 
    String cookieString = "param=value"; 
    cookieManager.setCookie(domain_of_url("domain name"), cookieString); 
    CookieSyncManager.getInstance().sync(); 

    Map<String, String> abc = new HashMap<String, String>(); 
    abc.put("Cookie", cookieString); 
    webview.loadUrl("domain name", 
      abc); 

может вы получить решение

также идет Повсеместно этой ссылку, чтобы получить правильное представление Android WebView Cookie Problem

или вы также можете сделать как в этих qestion Using session cookies with android

и

Using cookies with Android

 Смежные вопросы

  • Нет связанных вопросов^_^