基于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>
&#13;
如果您通过主框架中的链接打开cookie站点,您可以通过按钮设置/读取cookie&#34;创建Cookie ...&#34;或&#34;显示所有Cookie&#34;。在iframe中,显示所有cookie始终返回空结果。即使你在iframe中创建一个显示所有cookie的cookie,也会得到一个空的结果。
是否存在影响此行为的Webview设置?
答案 0 :(得分:8)
我不知道为什么但是可以通过启用第三方Cookie来改善行为:
if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
CookieManager.getInstance().setAcceptThirdPartyCookies(webView,true);
这样做之后,cookie就像预期的那样在iFrame中工作。