我正在开发一个电子邮件应用程序,我想在 WebView2 中显示邮件消息。我想让用户选择下载或不下载 Html 邮件消息中的远程资源(出于安全原因)。如何取消WebView2中请求的资源?
我尝试订阅事件 webView.CoreWebView2.WebResourceRequested += CoreWebView2_WebResourceRequested;
但是当调用事件处理程序时,我看不到取消请求的方法。
取消对资源的请求的方法是将参数Response的属性设置CoreWebView2WebResourceRequestedEventArgs为虚拟响应。
但是,在执行此操作之前,您必须调用CoreWebView2.AddWebResourceRequestedFilter以指定要触发WebResourceRequested事件的资源类型。
这是一个示例,它将过滤掉所有对图像的请求:
using Microsoft.Web.WebView2.Core;
private async void Form1_Load(object sender, EventArgs e)
{
await webView21.EnsureCoreWebView2Async();
}
private void WebView21_CoreWebView2InitializationCompleted(object sender, Microsoft.Web.WebView2.Core.CoreWebView2InitializationCompletedEventArgs e)
{
webView21.CoreWebView2.WebResourceRequested += CoreWebView2_WebResourceRequested;
webView21.CoreWebView2.AddWebResourceRequestedFilter(null, Microsoft.Web.WebView2.Core.CoreWebView2WebResourceContext.Image);
webView21.CoreWebView2.Navigate("https://stackoverflow.com");
}
private void CoreWebView2_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
{
e.Response = webView21.CoreWebView2.Environment.CreateWebResourceResponse(null, 404, "Not found", null);
}
Run Code Online (Sandbox Code Playgroud)
如果您愿意,当然可以添加更多过滤逻辑。
| 归档时间: |
|
| 查看次数: |
1761 次 |
| 最近记录: |