2014-03-25 11 views
6

Ich muss URL in webview mit dem Senden von Cookies laden. Wow, um dies zu erreichen?Android - Wie Cookie übergeben, um URL mit Webview zu laden?

ich folgenden Code tue ..

CookieManager cookieManager; 

     CookieSyncManager.createInstance(PrivacyActivity.this); 
     cookieManager = CookieManager.getInstance(); 

     cookieManager.setCookie("param", "value"); 
     CookieSyncManager.getInstance().sync(); 

     WebSettings webSettings = wv.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     webSettings.setBuiltInZoomControls(true); 
     wv.setWebViewClient(new WebViewClient() { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     return super.shouldOverrideUrlLoading(view, url); 
     } 
     }); 
     wv.loadUrl("https://example.com"); 

Aber nicht richtiges Ergebnis. Einfach "https://example.com" bekommen, wie es ist. Cookie nicht funktioniert ..

Antwort

6

I gelöstes Problem als ,,,

 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("like http://abc-site.com"), cookieString); 
     CookieSyncManager.getInstance().sync(); 

     Map<String, String> abc = new HashMap<String, String>(); 
     abc.put("Cookie", cookieString); 
     webview.loadUrl("http://abc-site.com/a1/namedFolder/file", 
       abc); 
+5

CookieSyncManager ist jetzt veraltet ... –

+0

Was ist die Alternative für CookieSyncManager? Müssen wir Cookies manuell hinzufügen? Können wir nicht alle Cookies an das Webview übergeben? –

6

Diese Lösung funktioniert für mich (Fügen Sie einfach Cookies an den Cookie bevor die URL geladen und das ist alles):

WebView webview = (WebView) findViewById(R.id.webview); 
... 
CookieManager.getInstance().setCookie("http://example.com/", "key=value"); 
webview.loadUrl("http://example.com/"); 
+0

Danke Kata Lune. Mein Tag gerettet – Santhana

+0

Super! Arbeitete wie Charme .. –

Verwandte Themen