微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Webview2

如何解决在 Webview2

我正在创建一个使用 Webview2 作为浏览器的桌面应用程序。我必须更改用户代理才能从网站获取数据。我的控件名称是浏览器控件的 Webview21。我收到错误消息 System.NotImplementedException: 'Unable to cast to 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

解决方法

当前稳定版本(版本 1.0.818.41)不支持

CoreWebView2.Settings.UserAgent。 如果您想使用 CoreWebView2.Settings.UserAgent,您必须安装预发布版本,当前版本为 1.0.865-预发布。

您可以按照此处的说明操作:To install a pre-release version

这也意味着您必须使用 Microsoft Edge CANARY 构建 你可以在这里得到:Microsoft Edge Insider Channels

很遗憾,您可能需要卸载“WebView2 运行时”(我认为这是 WebView2 包中的一个错误)。

更新:

现在最新的稳定版支持设置 useragent

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。