【发布时间】:2013-10-17 22:19:47
【问题描述】:
我正在尝试在 web 视图中使用 javascript 设置 cookie。 webview 是从本地资产目录加载的(其中 page 是一个字符串,例如“index.html”)
engine.loadUrl("file:///android_asset/" + page);
我发现当从网络加载完全相同的文件(即http://www.domain.com/index.html)时,相同的文件可以按预期设置 cookie。
旧版本的 android 允许在本地文件上创建 cookie,但新版本不允许。我已经对此进行了测试,它适用于三星 Galaxy Ace、HTC Desire Z 和较低 SDK 的 eclipse 模拟器,但不适用于三星 SIII 和三星 Tab 10.1。
我需要设置一个 cookie 以便在我的 webview 中的页面之间传送数据;保存搜索结果以重新显示。
如果有人知道解决这些本地文件问题的任何方法/技巧,我将不胜感激。我已经在这工作了大约 8 周了。我问了一个可能有助于进一步阅读的类似问题,但问题现在已经确定并且是一个非常不同的问题,所以我在这里问这个问题。 Android webview cookie returns null
谢谢。
【问题讨论】:
-
我知道很久以前就有人问过了,但你找到解决办法了吗?
-
该问题是由安全问题修复引起的。允许任何应用程序在“localhost”域下存储 cookie。这实际上意味着任何人都可以创建一个应用程序来从同一个 cookie 存储中读取/写入。结果,这在更高版本的 Android 中被 Android 阻止了。请参阅我的类似问题:stackoverflow.com/questions/19235489/…
标签: javascript android cookies webview