c# WebView2更改用户代理不工作?



下面是我的代码:

public MainWindow() { 
this.InitializeComponent(); 
this.Title = "mainWindow"; 
Task.Run(async () => { 
await this.webView.EnsureCoreWebView2Async(); 
this.webView.CoreWebView2.Settings.UserAgent = "windows/webview2"; 
}); 
} 

但是在devtool中,user-agent保持不变:

user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54

你的代码不能工作,因为你试图从主ui线程以外的另一个线程访问WebView

CoreWebView2Initialized事件处理程序中执行,而不是在单独的线程中运行代码:

public sealed partial class MainWindow : Window
{
public MainWindow()
{
this.InitializeComponent();
// Set eventhandler
webView.CoreWebView2Initialized += WebView_CoreWebView2Initialized;
}
private void WebView_CoreWebView2Initialized(WebView2 sender, CoreWebView2InitializedEventArgs args)
{
// Set custom user agent string in Initialized event
sender.CoreWebView2.Settings.UserAgent = "Test/Stackoverflow";
}
private async void myButton_Click(object sender, RoutedEventArgs e)
{
myButton.Content = "Clicked";

// Browse to website 
await webView.EnsureCoreWebView2Async();
webView.Source = new Uri("https://www.browserlookup.com/");
}
}

这在大多数情况下对我有效。在WebView2中仍然有一个已知的错误,这意味着当一个特定的网站第一次访问时,自定义用户代理名称不会被使用。有趣的是,我唯一能重现这个bug的网站是& whatismybrowser.com"…

最新更新