2016-07-30 7 views
1

Ein Benutzer meiner Webview-basierten Browser-App hat ein Problem mit der Einbettung von Google Kalender in einen Iframe gemeldet. Es sieht so aus, als ob der von Android Webview geladene iframe (neueste Version von Google Play, getestet mit Android 6) keine Cookies lesen oder setzen kann.Cookies funktionieren nicht in einem Iframe in Android Webview

Das Problem ist nicht in Google Chrome auf demselben Gerät vorhanden. Es scheint nur mit Android Webview verwandt zu sein.

Ich kann das Problem mit der folgenden Website reproduzieren.

<!DOCTYPE html> 
 
    <html> 
 
    <head> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
 
    </head> 
 
    <body> 
 
    <a href="http://www.w3schools.com/js/js_cookies.asp">Cookies Management</a> 
 
    <br><br> 
 
    <iframe style="margin-top: 30px; border-width: 1px;" src="http://www.w3schools.com/js/js_cookies.asp" width="400" height="672" scrolling="yes"></iframe> 
 
    </body> 
 
    </html>

Wenn Sie die Cookie-Website per Link im Hauptrahmen öffnen können Sie einstellen/lesen Cookies durch die Buttons "Cookie erstellen ..." oder "Alle Cookies anzeigen". Im iframe gibt jedoch die Anzeige aller Cookies immer ein leeres Ergebnis zurück. Selbst wenn Sie einen Cookie im Iframe erstellen, der alle Cookies anzeigt, erhalten Sie ein leeres Ergebnis.

Gibt es irgendwelche Webview-Einstellungen, die dieses Verhalten beeinflussen?

Antwort

5

Ich weiß nicht, warum, aber das Verhalten kann wie folgt durch Aktivierung Cookies von Drittanbietern verbessert werden:

if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
     CookieManager.getInstance().setAcceptThirdPartyCookies(webView,true); 

Nachdem ich so die Cookies in einem iFrame arbeiten wie erwartet.

Verwandte Themen