【发布时间】:2021-01-25 08:11:08
【问题描述】:
我正在运行 Edge WebView2,其中加载了一些登录页面。我要自动登录。
为此,我需要删除当前的 cookie。我不能通过 js 做到这一点,因为它们是 httponly。 对于 Edge beta 浏览器,我编写了简单的 Chrome 扩展来删除 cookie,但我无法在 WebView2 中运行扩展(或者可以?)。
我也知道 WebView2 cookie 文件的位置,但我无法在 Webview 运行时更改它。
在 WebView 中执行此操作的唯一方法是打开 DevTools,我在应用程序选项卡中删除了它们。
关于如何删除这些 cookie 的任何想法?
我希望至少在 c++ 中使用自定义标题(我可以在其中指定 cookie)加载 WebView2 页面的示例。
【问题讨论】:
-
WebView2 还没有功能齐全的 cookie API,但它们有一个 devtools API,您可以使用它来发出开发工具命令。这实际上是删除 cookie 的推荐方法。如果没有其他人这样做,我会尝试拉一些链接并发布答案
-
@Human-Compiler 如果您提供一个示例,或者至少提供一个学习链接,我将不胜感激。另外,似乎我看到的似乎与您所说的相似,有一个名为
...calldevtoolsmethodasync或类似名称的方法,但它是用于C# -
是的,这就是 API。大多数(如果不是全部)C# API 也可作为 C++ API 使用。如果您还没有看到它,Microsoft 有一个 Browser Example Repository,这是一个很好的参考来源——他们使用这个 API 来清除所有 cookie(我也在我的答案中链接了)。有一个对适当 cookie API 的开放请求,但目前建议使用 devtools API