首页 > 解决方案 > Android Webkit CookieManager:从 SQLite3 数据库加载 Cookie

问题描述

Android 应用程序的所有 WebView 共享(以及其他数据)他们存储的 cookie 集。我想分离cookie存储,即每个WebView都应该有自己的一组cookie。

因此,我正在寻找一种方法来从 WebView 中检索所有 cookie,包括元信息(到期日期、标志等),分别保存它们并在需要时再次设置它们。CookieManager有一个方法getCookie(),但是,它只返回当前有效 cookie 的值和名称,没有任何元信息(如此所述)。

Android WebView 将 cookie 存储在磁盘上的 SQLite3 数据库中。显然,获得完整 cookie 信息的唯一方法是查看磁盘上的 cookie 存储。可以解析 SQLite3 数据库并使用CookieManager's setCookie(),但所有加密值都会丢失。所以我的想法是复制整个数据库文件并根据需要交换(即重命名)文件。

这种方法的潜在问题:

我在哪里可以找到最初从磁盘加载 cookie 的代码?Android SDKCookieManager.java是一个抽象类,我在哪里可以找到实际的实现?它可能对这个问题有宝贵的见解。

标签: androidcookieswebviewandroid-webview

解决方案


供参考:Chromium 开发团队的一名成员证实,目前无法在应用程序中分离 cookie 存储。


推荐阅读