2017-10-26 4 views
0

Ich muss eine Webseite in der benutzerdefinierten Registerkarte öffnen. Die Seite erfordert jedoch offensichtlich, dass sich Benutzer anmelden. Wir möchten nicht, dass unsere Benutzer aufgefordert werden, sich anzumelden. Stattdessen möchten wir Cookies mit einem Token auf CustomTab setzen, damit sie automatisch protokolliert werden. Ich habe eine Antwort here gelesen, die besagt, dass es nicht möglich ist. Verstehe ich es richtig? Gibt es eine Möglichkeit, das Ziel zu erreichen?Android: So legen Sie Cookie-Daten in benutzerdefinierten Registerkarten fest

EDIT: Ich habe dies nach @Aris Panayiotou Antwort versucht, aber es hat nicht funktioniert. Was habe ich hier falsch gemacht?

private void openWebView() { 
    if (getActivity() != null) { 
     CookieManager cookieManager = new CookieManager(); 
     CookieHandler.setDefault(cookieManager); 
     String cookieStringTakenFromWeb = "some cookie string with correct token"; 

     CookieStore cookieStore = cookieManager.getCookieStore(); 
     HttpCookie cookie = new HttpCookie("Cookie", cookieStringTakenFromWeb); 
     cookieStore.add(URI.create(Util.getString(R.string.myUrl)), cookie); 

     final CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder(mCustomTabsSession) 
       .setToolbarColor(ContextCompat.getColor(getActivity(), R.color.red)) 
       .setShowTitle(true) 
       .build(); 
     customTabsIntent.launchUrl(getActivity(), Uri.parse(Util.getString(R.string.myUrl))); 
    } 
} 

Antwort

0

als von dem, was ich aus Ihrer Frage zu verstehen, können Sie versuchen, CookieHandler. Ein CookieHandler-Objekt stellt einen Rückrufmechanismus zum Verbinden einer HTTP-Statusverwaltungsrichtlinienimplementierung mit dem HTTP-Protokollhandler bereit. Der HTTP-Statusverwaltungsmechanismus gibt eine Möglichkeit zum Erstellen einer Statussitzung mit HTTP-Anforderungen und -Antworten an.

Lesen Sie weiter auf diesem Link: CookieHandler

und Cookie mehr lesen: CookieManager

+0

Vielen Dank für diese Informationen. Können Sie sich meine aktualisierte Frage ansehen? Bin dankbar. – Sermilion

+0

Haben Sie eine Anwendung in Ihrem Projekt? Wenn ja, füge dies in onCreate Method CookieHandler.setDefault hinzu (new CookieManager()); oder in Ihrer Hauptaktivität –

+0

Hat nicht geholfen :( – Sermilion

Verwandte Themen