2017-09-15 1 views
0

Ich lade eine URL in WebView, in der sich LinkedIn anmelden, nachdem ich mich eingeloggt habe, kann ich mich nicht ausloggen. Ich habe Cookies auf zwei Arten unten gelöscht, immer noch nicht gelöst Problem. Bitte helfen ...LlinkedIn kann sich nicht in WebView abmelden

Way 1:

LISessionManager.getInstance(getApplicationContext()).clearSession(); 

Way 2:

android.webkit.CookieManager.getInstance().setCookie(".linkedin.com", "bcookie="); 
    android.webkit.CookieManager.getInstance().setCookie(".linkedin.com", "bscookie="); 
    android.webkit.CookieManager.getInstance().setCookie(".linkedin.com", "visit="); 
    android.webkit.CookieManager.getInstance().setCookie(".linkedin.com", "sl="); 
    android.webkit.CookieManager.getInstance().setCookie(".linkedin.com", "lang=1"); 
    android.webkit.CookieManager.getInstance().setCookie(".linkedin.com", "JSESSIONID="); 
    android.webkit.CookieManager.getInstance().setCookie(".linkedin.com", "li_at="); 
    android.webkit.CookieManager.getInstance().setCookie(".linkedin.com", "bcookie="); 

Antwort

0

Jedes Mal, wenn ich brauche, etwas anderes zu tun, als eine einfache HTML-Seite in einem Webview Anzeige Ich werde verrückt. Sie haben für jede Android-Version mehrere Dinge geändert/kaputt gemacht, sodass Sie jede einzelne Codezeile duplizieren müssen.

Einmal musste ich die Cookies eines Webview in meiner App löschen, und ich tat es mit cookieManager.removeAllCookie(), die nach Lollipop veraltet war.

Auch ich verwendete webview.clearCache(). Gemäß der Dokumentation: Löscht den Ressourcencache. Beachten Sie, dass der Cache pro Anwendung ausgeführt wird. Dadurch wird der Cache für alle verwendeten WebViews gelöscht. Sie müssen also nicht auf Ihre aktuelle Webansicht verweisen (sehr nützlich, wenn diese Abmeldung an einer anderen Stelle der App erfolgt).

So kombinierte ich diese 2 Lösungen, indem Sie:

CookieManager cookieManager = CookieManager.getInstance(); 
    if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
     cookieManager.removeAllCookies(new ValueCallback<Boolean>() { 
      @Override 
      public void onReceiveValue(Boolean value) { 
       //Removed? 
      } 
     }); 
     cookieManager.flush(); 
    } else { 
     CookieSyncManager.createInstance(this); 
     cookieManager.removeAllCookie(); 
    } 

    new WebView(getApplicationContext()).clearCache(true); 

Dies löste mein Problem von einer anderen Website von abzumelden als LinkedIn. Ich weiß nicht, ob es noch einen speziellen Trick gibt, den Sie für Ihren speziellen Fall erfüllen müssen.

+0

Wenn Sie gesagt haben, dass "alle Cookies entfernen", alle Cookies von Linked in sowie URL Cookies entfernt werden. Aber hier müssen URL Cookies vorhanden sein. Also ich möchte nur in Cookies verlinkt löschen ... Ich denke jetzt hast du mein Problem ..... – Lokesh

+0

Wenn du einige Cookies erhalten musst, dann wird meine Lösung nicht für dich funktionieren. Entschuldigung, ich kannte diese Einschränkung nicht, als ich dir antwortete. –