Are you an LLM? You can read better optimized documentation at /zh\vbman2\demos\webview2\5.cookies.md for this page in Markdown format
WebView2 Cookies 示例 - Cookie 访问
概述
演示 cWebView2Host 的 Cookie 管理功能,包括简化模式(document.cookie)和完整模式(CDP Network.getCookies,含 HttpOnly Cookie)两种获取方式。
项目结构
下载源码 [ 注意:重新到bin目录注册 DLL 文件 ]
代码请到 VBMAN2 项目 demos/webview2/cookies 目录获取。
cookies/
├── Form1.frm # 主窗体,包含 Cookie 获取逻辑
├── Form1.frx # 窗体布局二进制数据
├── vbman2_webview2.vbp # VB6 项目文件
└── vbman2_webview2.vbw # VB6 工作区文件核心代码解析
1. 声明与初始化(Form1.frm)
vb
Dim wv As New cWebView2Host
Private Sub Form_Load()
' 注意:WebView2 嵌入 Frame 控件而非整个 Form
wv.Initialize Me.Frame1.hWnd, "https://vb6.pro"
End Sub此示例将 WebView2 嵌入到 Frame 控件中,展示了 Initialize 可以接受任何窗口句柄。
2. 简易 Cookie 获取
vb
Private Sub Command1_Click()
Text1.Text = wv.Cookies.GetCookies
End Sub使用 document.cookie 解析,不包含 HttpOnly Cookie。返回简化格式的 Cookie 字符串。
3. 完整 Cookie 获取
vb
Private Sub Command2_Click()
Text1.Text = wv.Cookies.GetCookiesFull
End Sub使用 CDP Network.getCookies 获取,包含 HttpOnly Cookie。返回 JSON 格式的详细 Cookie 信息,包括 domain、path、httpOnly、secure 等字段。
功能说明
简易 Cookie 模式
- 通过
document.cookie获取 - 返回可读的 Cookie 字符串
- 不含 HttpOnly Cookie(浏览器安全限制)
- 通过
完整 Cookie 模式
- 通过 CDP
Network.getCookies获取 - 包含 HttpOnly Cookie
- 返回 JSON 格式,含完整 Cookie 属性
- 通过 CDP
Frame 控件嵌入
- WebView2 不限于 Form,可以嵌入任何有 hWnd 的控件
- 使用
Me.Frame1.hWnd将浏览器嵌入 Frame 区域
技术要点
- HttpOnly Cookie 是设置了 HttpOnly 标志的 Cookie,JavaScript 的
document.cookie无法读取。只有 CDP 或服务端才能访问 - Cookies 属性是只读的子对象,通过
wv.Cookies访问,不直接创建 - GetCookiesFull 返回 JSON,可能需要 JSON 解析库提取具体字段
应用场景
- 调试 Web 应用的 Cookie 状态
- 实现自动登录(读取和设置 Cookie)
- 监控第三方 Cookie 和隐私合规
扩展建议
- 使用 CDP 的
Network.setCookie和Network.deleteCookies实现完整的 Cookie 管理功能 - 结合定时器实现 Cookie 监控,检测会话过期
- 使用
Cookies.GetCookiesFullAsync异步获取,避免 UI 冻结