[英]set Webview2 header in Wpf application
我想为 Webview2 发出的所有请求设置自定义标头。 请帮忙。 基本上我想在 webview 本身中加载网站,所以我需要在所有请求中收到我的标头。
主窗口.xaml
<DockPanel>
<wv2:WebView2 Name="webView"
Source="http://localhost/serverinfo"
CoreWebView2InitializationCompleted="webView_CoreWebView2InitializationCompleted"
ZoomFactor="1.2"
NavigationStarting="WebView_NavigationStarting"
/>
</DockPanel>
主窗口.xaml.cs
using Microsoft.Web.WebView2.Core;
using System;
using System.Windows;
namespace O2C
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void webView_CoreWebView2InitializationCompleted(object sender, Microsoft.Web.WebView2.Core.CoreWebView2InitializationCompletedEventArgs e)
{
webView.CoreWebView2.Settings.UserAgent = "O2C-Web";
webView.CoreWebView2.Settings.AreDefaultContextMenusEnabled = false;
webView.CoreWebView2.Settings.AreBrowserAcceleratorKeysEnabled = false;
}
private void WebView_NavigationStarting(object sender, CoreWebView2NavigationStartingEventArgs e)
{
e.RequestHeaders.SetHeader("X-Authorization", "My Auth");
}
}
}
e.RequestHeaders.SetHeader("X-Authorization", "My Auth");
上面一行是正确的,但事件不正确,因为如果存在新 URL,它会起作用,但如果存在相同的 URL,则它不起作用。
我找到了可以满足要求的正确事件,但我不知道如何从 xaml 文件或 .cs 文件中调用该事件。 以下文档说该事件将满足要求。
但是如何挂钩该事件以及从哪里我不知道。
该事件 WebResourceRequested 在 CoreWebView2 类上,您可以在 WebView2.CoreWebView2InitializationCompleted 事件触发后,在 WebView2 类上找到作为属性的 CoreWebView2。
private void webView_CoreWebView2InitializationCompleted(object sender, Microsoft.Web.WebView2.Core.CoreWebView2InitializationCompletedEventArgs e)
{
if (e.IsSuccess)
{
webView.CoreWebView2.Settings.UserAgent = "O2C-Web";
webView.CoreWebView2.Settings.AreDefaultContextMenusEnabled = false;
webView.CoreWebView2.Settings.AreBrowserAcceleratorKeysEnabled = false;
webView.CoreWebView2.WebResourceRequested += CoreWebView2_WebResourceRequested;
}
}
private void CoreWebView2_WebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e)
{
e.Request.Headers.SetHeader("X-Authorization", "My Auth");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.