在 Webview2 中设置 UserAgent
set UserAgent in Webview2
我正在创建一个使用 Webview2 作为浏览器的桌面应用程序。我必须更改用户代理才能从网站获取数据。对于浏览器控件,我的控件名称是 Webview21。我收到错误消息 System.NotImplementedException:“无法投射到 Microsoft.Web.WebView2.Core.Raw.ICoreWebView2Settings2。
如果您使用的接口不受 WebView2 Runtime 版本支持,则可能会发生这种情况。但我有最新的常绿版本。
解决方法是什么?
Public Async Sub InitializeBrowser()
Dim strip As String = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.62 seakayak-navigator"
Dim opts As New CoreWebView2EnvironmentOptions With {.AdditionalBrowserArguments = "--disable-web-security --allow-file-access-from-files --allow-file-access "}
Dim userDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "\SeakayakNavigator"
Dim env = Await CoreWebView2Environment.CreateAsync(Nothing, userDataFolder)
Await WebView21.EnsureCoreWebView2Async(env)
Application.DoEvents()
WebView21.Width = Fmenu.Width
WebView21.Height = Fmenu.Height
WebView21.Top = 0
WebView21.Left = 0
WebView21.BringToFront()
WebView21.CoreWebView2.Settings.UserAgent = strip
' Add any initialization after the InitializeComponent() call.
AddHandler WebView21.NavigationCompleted, AddressOf webview21_navigationCompleted
WebView21.CoreWebView2.AddHostObjectToScript("Bridge", New Bridge())
End Sub
CoreWebView2.Settings.UserAgent
在当前 稳定 版本(版本 1.0.818.41)中不受支持。
如果你想使用 CoreWebView2.Settings.UserAgent
你必须安装 pre-release 版本,当前版本 1.0.865-prerelease.
您可以按照此处的说明进行操作:
这也意味着你必须使用 Microsoft Edge CANARY build
你可以在这里找到:Microsoft Edge Insider Channels
不幸的是,您可能必须卸载 'WebView2 runtime'(我认为这是 WebView2 包中的错误)。
更新:
现在最新稳定版支持设置
useragent
.
我正在创建一个使用 Webview2 作为浏览器的桌面应用程序。我必须更改用户代理才能从网站获取数据。对于浏览器控件,我的控件名称是 Webview21。我收到错误消息 System.NotImplementedException:“无法投射到 Microsoft.Web.WebView2.Core.Raw.ICoreWebView2Settings2。 如果您使用的接口不受 WebView2 Runtime 版本支持,则可能会发生这种情况。但我有最新的常绿版本。 解决方法是什么?
Public Async Sub InitializeBrowser()
Dim strip As String = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.62 seakayak-navigator"
Dim opts As New CoreWebView2EnvironmentOptions With {.AdditionalBrowserArguments = "--disable-web-security --allow-file-access-from-files --allow-file-access "}
Dim userDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) & "\SeakayakNavigator"
Dim env = Await CoreWebView2Environment.CreateAsync(Nothing, userDataFolder)
Await WebView21.EnsureCoreWebView2Async(env)
Application.DoEvents()
WebView21.Width = Fmenu.Width
WebView21.Height = Fmenu.Height
WebView21.Top = 0
WebView21.Left = 0
WebView21.BringToFront()
WebView21.CoreWebView2.Settings.UserAgent = strip
' Add any initialization after the InitializeComponent() call.
AddHandler WebView21.NavigationCompleted, AddressOf webview21_navigationCompleted
WebView21.CoreWebView2.AddHostObjectToScript("Bridge", New Bridge())
End Sub
CoreWebView2.Settings.UserAgent
在当前 稳定 版本(版本 1.0.818.41)中不受支持。
如果你想使用 CoreWebView2.Settings.UserAgent
你必须安装 pre-release 版本,当前版本 1.0.865-prerelease.
您可以按照此处的说明进行操作:
这也意味着你必须使用 Microsoft Edge CANARY build 你可以在这里找到:Microsoft Edge Insider Channels
不幸的是,您可能必须卸载 'WebView2 runtime'(我认为这是 WebView2 包中的错误)。
更新:
现在最新稳定版支持设置
useragent
.