WebResourceRequested
WebResourceRequested是WebViewer控件的核心事件之一,用于拦截、修改、替换或取消WebViewer发起的所有网络资源请求(如 HTML、CSS、JS、图片、API 请求等)。
通过该事件,你可以实现请求重定向、注入自定义资源、拦截广告、修改请求头、修改响应内容等高级功能。
Webviewer发起任何网络资源请求(包括主文档、子资源、AJAX 请求)都会触发WebResourceRequested,而且此时请求并未发送,所以可以全流程控制请求。
e参数属性:
| 属性名称 | 数据类型 | 核心说明 |
|---|---|---|
| Request | CoreWebView2WebResourceRequest | 返回待发送的网络请求对象,可重定向请求、添加自定义请求头、修改 POST 数据、变更请求方法(GET→POST) 其属性有: Uri: 请求的 Uri(可修改重定向) Method: 请求方法(GET/POST/PUT 等) Headers: 请求头集合(可读取,也可添加 / 删除 / 修改) Content: POST 请求的正文(流) |
| Response | CoreWebView2WebResourceResponse | 设置响应对象,设置后 WebViewer不再发送请求, 直接使用该响应替代服务器返回的内容,通常用于替换资源(本地图片 / 自定义 JSON)、返回 404/500 等状态码、屏蔽广告 |
| ResourceContext | CoreWebView2WebResourceContext | 返回请求的资源类型(如文档、图片、脚本、AJAX 等),详见后面的表格 |
| RequestedSourceKind | CoreWebView2WebResourceRequestSourceKinds | 返回发起该资源请求的来源 可选值有: Document: 请求来自主页面 SharedWorker: 请求来自共享工作线程 ServiceWorker:请求来自服务工作线程 |
| GetDeferral() | CoreWebView2Deferral(方法) | 获取延迟对象,用于事件内异步操作(如异步读文件 / 网络请求),需调用 Complete()结束延迟 |
ResourceContext属性用于返回请求的资源类型,可选值有:
| 值 | 类型 |
|---|---|
| All | 所有类型的资源 |
| Document | 主 HTML 文档 |
| Stylesheet | CSS 样式表 |
| Image | 图片资源(PNG/JPG 等) |
| Media | 其他媒体资源(如视频) |
| Font | 字体文件 |
| Script | JavaScript 文件 |
| XmlHttpRequest | XML HTTP 请求、Fetch API 通信、EventSource API 通信 |
| Fetch | Fetch API 通信 |
| TextTrack | 文本轨道资源 |
| EventSource | EventSource API 通信 |
| Websocket | WebSocket API 通信 |
| Manifest | Web App 清单资源 |
| SignedExchange | 签名 HTTP 交换资源 |
| Ping | Ping 请求资源 |
| CspViolationReport | 内容安全策略(CSP)违规报告请求 |
| Other | 其他未分类的资源 |