Skip to content

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 可以接受任何窗口句柄。

vb
Private Sub Command1_Click()
    Text1.Text = wv.Cookies.GetCookies
End Sub

使用 document.cookie 解析,不包含 HttpOnly Cookie。返回简化格式的 Cookie 字符串。

vb
Private Sub Command2_Click()
    Text1.Text = wv.Cookies.GetCookiesFull
End Sub

使用 CDP Network.getCookies 获取,包含 HttpOnly Cookie。返回 JSON 格式的详细 Cookie 信息,包括 domain、path、httpOnly、secure 等字段。

功能说明 ​

  1. 简易 Cookie 模式

    • 通过 document.cookie 获取
    • 返回可读的 Cookie 字符串
    • 不含 HttpOnly Cookie(浏览器安全限制)
  2. 完整 Cookie 模式

    • 通过 CDP Network.getCookies 获取
    • 包含 HttpOnly Cookie
    • 返回 JSON 格式,含完整 Cookie 属性
  3. Frame 控件嵌入

    • WebView2 不限于 Form,可以嵌入任何有 hWnd 的控件
    • 使用 Me.Frame1.hWnd 将浏览器嵌入 Frame 区域

技术要点 ​

  1. HttpOnly Cookie 是设置了 HttpOnly 标志的 Cookie,JavaScript 的 document.cookie 无法读取。只有 CDP 或服务端才能访问
  2. Cookies 属性是只读的子对象,通过 wv.Cookies 访问,不直接创建
  3. GetCookiesFull 返回 JSON,可能需要 JSON 解析库提取具体字段

应用场景 ​

  1. 调试 Web 应用的 Cookie 状态
  2. 实现自动登录(读取和设置 Cookie)
  3. 监控第三方 Cookie 和隐私合规

扩展建议 ​

  1. 使用 CDP 的 Network.setCookie 和 Network.deleteCookies 实现完整的 Cookie 管理功能
  2. 结合定时器实现 Cookie 监控,检测会话过期
  3. 使用 Cookies.GetCookiesFullAsync 异步获取,避免 UI 冻结

VB6及其LOGO版权为微软公司所有