javascript - 从 Assets 目录中的 HTML 文件设置 Android Webview cookie

标签 javascript android cookies webview

我正在尝试在 web View 中使用 javascript 设置 cookie。 webview 是从本地 assets 目录加载的(其中 page 是一个字符串,例如“index.html”)

engine.loadUrl("file:///android_asset/" + page);

我发现当从网络加载完全相同的文件(即 http://www.domain.com/index.html )时,相同的文件可以按预期设置 cookie。

旧版本的 android 允许在本地文件上创建 cookie,但新版本不允许。我已经对此进行了测试,它适用于 Samsung Galaxy Ace、HTC Desire Z 和较低 SDK 的 eclipse 模拟器,但不适用于 Samsung SIII 或 Samsung Tab 10.1。

我需要设置一个 cookie 以便在我的 webview 中的页面之间传输数据;保存搜索结果以重新显示。

如果有人知道解决这些本地文件问题的任何方法/技巧,我将非常感激。我已经在这里工作了大约 8 周了。我问了一个类似的问题,这可能有助于进一步阅读,但问题现在已经确定并且是一个非常不同的问题,所以我在这里问这个问题。 Android webview cookie returns null

谢谢。

最佳答案

这不可能的原因在于通过本地主机实现 cookie 的安全限制。如果可以设置 cookie,那么其他人也可以创建应用程序并读取您的应用程序 cookie。它曾经在早期版本的 Android 上是可能的,但后来修补了安全漏洞。

这就是传统网络浏览器存在相同限制的原因。

请参阅此相关问答: Android webview cookie returns null

关于javascript - 从 Assets 目录中的 HTML 文件设置 Android Webview cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19438327/

相关文章:

javascript - colpick js调色板位置

javascript - D3jS 色阶不起作用

Django 注销(重定向到主页).. 删除 cookie?

javascript - cookie 是 jQuery 为每个用户只打开一次弹出窗口的唯一方式,还是 jQuery 可以处理 IP 验证?

android - 无法从 Objective C 解密 AES 加密字符串

java - 如何在 tomcat/java webapps 中配置 HttpOnly cookie?

javascript - 更改D3 geoCircle的大小和 Angular

javascript - 如何替换 REACT.js 中的 refs(antd 表示例)

java - 根据另一个字段的值有条件地反序列化一个字段

java - 应用程序在 Android Studio 中停止,但它可以编译