# webview_bridge —— WebView2 Bridge 演示

展示 `eduwin_webview` Bridge 机制的示例。HTML/CSS/JS 以独立文件加载（通过 Virtual Host 映射），C 端通过 Bridge 注册函数供 JS 调用。

## 功能

- **加载外部 HTML/CSS/JS**：使用 `webview_set_virtual_host()` 将 exe 目录映射为 `eduwin.local` 虚拟域名
- **Bridge 通信**：
  - JS 侧：`eduwin.on_message(cb)` 接收 C 消息，`eduwin.call(func, params, callback)` 调用 C 函数
  - C 侧：`webview_bridge_register()` 注册处理函数，JS 调 `eduwin.call()` 自动路由到对应 C 函数
- **内置演示**：`hello`（返回问候语）、`get_time`（返回当前时间）
- 链接在 WebView 内部打开（已拦截 NewWindowRequested，防止弹出系统浏览器）

## 源码位置

`samples/webview_bridge/`

| 文件 | 用途 |
|------|------|
| `main.c` | C 端：窗口、工具栏、Bridge 注册 |
| `index.html` | 页面结构 |
| `style.css` | 页面样式 |
| `script.js` | JS 端：`eduwin.on_message` / `eduwin.call` 使用 |

## 涉及模块

| 模块 | 用途 |
|------|------|
| `webview` | WebView2 嵌入、Bridge、Virtual Host |

## 编译

```bat
cd samples\webview_bridge
build.bat
```

需要链接的额外库：`WebView2LoaderStatic.lib` `ole32.lib` `oleaut32.lib` `version.lib` `advapi32.lib`。
