Ale*_*rov 4 javascript cookies iframe 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>Run Code Online (Sandbox Code Playgroud)
如果您通过主框架中的链接打开cookie站点,您可以通过"创建Cookie ..."或"显示所有Cookie"按钮设置/读取Cookie.在iframe中,显示所有cookie始终返回空结果.即使您在iframe中创建了一个显示所有Cookie的cookie,也会获得一个空结果.
是否存在影响此行为的Webview设置?
Ale*_*rov 10
我不知道为什么但是通过启用这样的第三方cookie可以改善行为:
if(android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
CookieManager.getInstance().setAcceptThirdPartyCookies(webView,true);
Run Code Online (Sandbox Code Playgroud)
在这样做之后,cookie正在按照预期在iFrame中工作.