gpt4 book ai didi

android - 从 API 17 开始,隐私浏览在 Android WebView 中已被弃用。有什么替代方案?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:28:35 26 4
gpt4 key购买 nike

对于允许启用隐私浏览的 WebView 构造函数,API 规范如下所示:

(来自 http://developer.android.com/reference/android/webkit/WebView.html)

WebView(Context context, AttributeSet attrs, int defStyle, boolean privateBrowsing)

此构造函数已在 API 级别 17 中弃用。不再直接通过 WebView 支持私有(private)浏览,并将在未来版本中删除。更喜欢使用 WebSettings、WebViewDatabase、CookieManager 和 WebStorage 来精细控制隐私数据。

从 API 19 (KitKat) 开始,隐私浏览被禁用。尝试使用值为 true 的值调用此构造函数会导致 IllegalArgumentException。

建议的替代方案在复制隐私浏览行为方面甚至都不会有效。 CookieManager 类是一个单例,所有设置都应用于整个应用程序。这种方法没有“隐私数据的细粒度控制”。 CookieManager 提供的唯一控件是能够为应用程序中存在的每个 WebView 完全禁用 cookie。这一变化意味着第三方浏览器无法再以任何方式复制谷歌自家浏览器的隐私浏览功能。

对于解决此行为的任何建议,我将不胜感激。到目前为止,我在 API 中找不到任何与以前的隐私浏览功能相似的东西。

最佳答案

除了我在评论中的内容之外,这是另一个证明拥有多个进程的地方。由于 CookieManager 是单例,不同的进程将有不同的 CookieManager 实例。 “私有(private)浏览”WebView 实例可以与“常规浏览”WebView 实例处于不同的进程中。

这确实有缺点:

  • 它们不能在同一个 Activity 中,因为来自一个进程的 View 不能在另一个进程中呈现。因此,如果浏览器的 UI 隐喻在单个 Activity (例如选项卡)中暗示多个 WebView 小部件,则需要调整该 UI 隐喻以允许在常规浏览和私有(private)浏览之间进行“上下文切换” .

  • 这将消耗更多系统 RAM,这对用户不利,但对开发人员有利(OutOfMemoryError 异常的可能性较小)。

关于android - 从 API 17 开始,隐私浏览在 Android WebView 中已被弃用。有什么替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20147882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com