2015-05-28 16 views
14

Ich verwende einen Cookie in meiner App, der in allen Browsern funktioniert, aber in Android-Gerät der Cookie nicht so schnell wie ich wollte, dauert es einige Zeit, bis Cookie gespeichert wird, passiert auch, wenn ich den Cookie lösche . Kann ich etwas tun, damit es besser funktioniert? Vielen Dank im Voraus für Ihre Antworten.CookieSyncManager ist jetzt veraltet, was kann ich stattdessen verwenden?

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    webview = new WebView(this); 
    webview.getSettings().setJavaScriptEnabled(true); // enable javascript 

    CookieManager.setAcceptFileSchemeCookies(true); 
    CookieManager cookieManager = CookieManager.getInstance(); 
    cookieManager.setAcceptCookie(true); 
    cookieManager.acceptCookie(); 
    String cookie = CookieManager.getInstance().getCookie("mylink"); 

    final Activity activity = this; 

    webview.setWebViewClient(new WebViewClient() { 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
      Toast.makeText(activity, description, Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    webview.loadUrl("mylink"); 

    setContentView(webview); 
} 

Antwort

15

Auf Lollipop und darüber hinaus funktioniert der CookieManager-Singleton von selbst. (Siehe Link - http://developer.android.com/reference/android/webkit/CookieManager.html) , jedoch musste vor Lollipop auch eine zusätzliche statische Methode von CookieSyncManager verwendet werden. Der folgende Code funktioniert für mich auf allen Android-Versionen, wenn sie auf einem WebView die Cookies einstellen -

CookieManager cookieManager = CookieManager.getInstance(); 
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { 
    CookieSyncManager.createInstance(this); 
} 
cookieManager.setAcceptCookie(true); 
+0

Ich hätte gerne, wenn Sie mir sagen, wie die Cookies für die Wiederverwendung zu speichern, wenn App geschlossen ist (Machen Sie das Cookie für ganzen App verfügbar) Ich lade eine Login-Seite auf Webview und jedes Mal, wenn App in der Nähe ist, muss ich mich erneut einloggen! – user1788736

Verwandte Themen