更新:现在有一个官方的ICoreWebView2CookieManager可用于管理 cookie。微软对这个 API 的记录非常好——所以最好检查他们的文档。
使用这个新 API,只需调用DeleteCookie
删除单个 cookie、DeleteCookies
从域中删除所有 cookie 或DeleteAllCookies
清除同一配置文件下的所有 cookie。
(原答案保留在下面)
WebView2 仍在积极开发中,还没有 cookie API——尽管他们知道这是一个请求。
当前推荐的清除/删除 cookie 的方法是使用ICoreWebView2::CallDevToolsProtocolMethod
并发出Network
命令。这也是微软在其示例浏览器应用程序中演示的删除所有 cookie 的内容。DevTools
即使未在应用程序中启用前端 UI 开发工具,使用API 仍然有效。
提供给命令的参数必须是 JSON 格式,因此如果您想使用 删除特定 cookie Network.deleteCookies
,则需要提供{"name":"<cookie name>;"}
delete <cookie name>
:
m_view->CallDevToolsProtocolMethod(L"Network.deleteCookies", L"{\"name\": \"<cookie name>\";}", nullptr);
或者,您可以使用以下命令删除所有cookie Network.clearBrowserCookies
:
m_view->CallDevToolsProtocolMethod(L"Network.clearBrowserCookies", L"{}", nullptr);
注意:是异步CallDevToolsProtocolMethod
发出的,因此如果您需要在继续之前删除 cookie,则可能需要提供处理程序参数。