WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),获取网页加载资源

简介: WebView2 控件,获取网页加载资源

在 WebView2 控件中,可以通过以下几种方式获取网页加载的资源列表(包括图片、脚本、CSS、AJAX请求等):

1. 使用 WebResourceRequested 事件(基础方法)

await webView.EnsureCoreWebView2Async();

// 订阅Web资源请求事件
webView.CoreWebView2.WebResourceRequested += (sender, args) => 
{
    string url = args.Request.Uri;
    string method = args.Request.Method;
    
    // 获取资源类型(通过Content-Type或文件扩展名)
    string resourceType = "Unknown";
    if (args.Response != null)
    {
        string contentType = args.Response.Headers.GetHeader("Content-Type")?.ToLower();
        
        if (contentType.Contains("text/css")) resourceType = "CSS";
        else if (contentType.Contains("javascript")) resourceType = "JS";
        else if (contentType.Contains("image/")) resourceType = "Image";
        // 其他类型判断...
    }
    
    // 输出资源信息
    Debug.WriteLine($"Resource: {url}, Type: {resourceType}, Method: {method}");
};

2. 使用 DevTools Protocol

await webView.EnsureCoreWebView2Async();

// 启用网络跟踪
await webView.CoreWebView2.CallDevToolsProtocolMethodAsync("Network.enable", "{}");

// 创建资源列表
List<WebResource> resourceList = new List<WebResource>();

// 订阅网络响应事件
var receiver = webView.CoreWebView2.GetDevToolsProtocolEventReceiver("Network.responseReceived");
receiver.DevToolsProtocolEventReceived += (sender, e) => 
{
    dynamic response = Newtonsoft.Json.JsonConvert.DeserializeObject(e.ParameterObjectAsJson);
    
    string url = response.response.url;
    string mimeType = response.response.mimeType;
    int status = response.response.status;
    
    // 添加到资源列表
    resourceList.Add(new WebResource
    {
        Url = url,
        MimeType = mimeType,
        StatusCode = status,
        ResourceType = response.type.ToString()
    });
    
    // 实时显示
    Debug.WriteLine($"Loaded: {url} ({mimeType})");
};

// 定义资源类
public class WebResource
{
    public string Url { get; set; }
    public string MimeType { get; set; }
    public int StatusCode { get; set; }
    public string ResourceType { get; set; }
}



目录
相关文章
|
前端开发
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),保存资源(图片、脚本、CSS)
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),保存资源(图片、脚本、CSS)
660 87
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
1017 156
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
530 63
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
448 5
在浏览器执行js脚本的两种方式
|
机器学习/深度学习 人工智能 前端开发
【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统
使用TensorFlow.js在浏览器中进行情感分析是一个非常实用的应用场景。TensorFlow.js 是一个用于在JavaScript环境中训练和部署机器学习模型的库,使得开发者能够在客户端直接运行复杂的机器学习任务。对于情感分析,我们可以使用预先训练好的模型来识别文本中的积极、消极或中性情感。
874 4
【人工智能】利用TensorFlow.js在浏览器中实现一个基本的情感分析系统
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
2436 1
|
机器学习/深度学习 自然语言处理 前端开发
前端大模型入门:Transformer.js 和 Xenova-引领浏览器端的机器学习变革
除了调用API接口使用Transformer技术,你是否想过在浏览器中运行大模型?Xenova团队推出的Transformer.js,基于JavaScript,让开发者能在浏览器中本地加载和执行预训练模型,无需依赖服务器。该库利用WebAssembly和WebGPU技术,大幅提升性能,尤其适合隐私保护、离线应用和低延迟交互场景。无论是NLP任务还是实时文本生成,Transformer.js都提供了强大支持,成为构建浏览器AI应用的核心工具。
3866 1
|
JavaScript 前端开发
js之浏览器对象|28
js之浏览器对象|28
|
机器学习/深度学习 存储 前端开发
实战揭秘:如何借助TensorFlow.js的强大力量,轻松将高效能的机器学习模型无缝集成到Web浏览器中,从而打造智能化的前端应用并优化用户体验
【8月更文挑战第31天】将机器学习模型集成到Web应用中,可让用户在浏览器内体验智能化功能。TensorFlow.js作为在客户端浏览器中运行的库,提供了强大支持。本文通过问答形式详细介绍如何使用TensorFlow.js将机器学习模型带入Web浏览器,并通过具体示例代码展示最佳实践。首先,需在HTML文件中引入TensorFlow.js库;接着,可通过加载预训练模型如MobileNet实现图像分类;然后,编写代码处理图像识别并显示结果;此外,还介绍了如何训练自定义模型及优化模型性能的方法,包括模型量化、剪枝和压缩等。
1274 1
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
1371 1