繁体   English   中英

在Android Webview中,Cookie无法在iframe中运行

[英]Cookies are not working in an iframe in Android Webview

我的基于Webview的浏览器应用的一位用户报告了在iframe中嵌入Google日历的问题。 看起来Android Webview加载的iframe(Google Play的最新版本,使用Android 6测试过)无法读取或设置任何Cookie。

Google Chrome在同一设备上不存在此问题。 它似乎只与Android Webview有关。

我可以通过以下网站重现该问题。

 <!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> 

如果您通过主框架中的链接打开cookie站点,您可以通过“创建Cookie ...”或“显示所有Cookie”按钮设置/读取Cookie。 在iframe中,显示所有cookie始终返回空结果。 即使您在iframe中创建了一个显示所有Cookie的cookie,也会获得一个空结果。

是否存在影响此行为的Webview设置?

我不知道为什么但是通过启用这样的第三方cookie可以改善行为:

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

在这样做之后,cookie正在按照预期在iFrame中工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM