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 其他未分类的资源

 


本页地址:http://www.foxtable.com/webhelp/topics/6214.htm