随笔 - 749  文章 - 1  评论 - 107  阅读 - 34万

【转】关于WebView2,是否可以入坑,及踩坑

参考:https://www.cnblogs.com/mcc7/p/16051161.html

参考:https://blog.csdn.net/luansxx/article/details/128330604

优缺点

优点

  • 使用方便,NuGet里装个WebView2就能用,和CEF的麻烦程度比起来,简直就是天上地下
  • 包小,WebView2 runtime可以直接在线安装
  • 支持H264,对PDF也很友好

缺点

  • 需要.net framework4.5.2(记不清了)以上或.net 5
  • 对于WPF,依然渲染在最上层(解决方法:把需要渲染上层的布局放在模态窗口并跟随,同时绑定同一个ViewModel方便使用)已修复
  • 使用人员少,没形成社区

踩过的坑

1. userDataFolder
关于用户数据文件夹,如果不设置,默认会存放在运行程序目录下,如果运行程序在ProgramFiles目录,则会有权限问题,导致写入失败而报错,解决方法是在初始化时修改到其他目录,如local

  protected override async void OnRender(DrawingContext drawingContext)
  {
        base.OnRender(drawingContext);
        try
        {
            var webView2Environment = await CoreWebView2Environment.CreateAsync(browserExecutableFolder: null, userDataFolder: SDK.BaseConst.DataBasePath);
            await WebView2.EnsureCoreWebView2Async(webView2Environment);
        }
        catch (Exception){}
   }

2. input-file标签
当程序以管理员身份运行时,HTML中如果包含input-file则点击无效
我在github的项目中看到过,他们会在未来的版本中修复这个问题,目前只能取消管理员身份,如可以把需要管理员的操作放在安装或子程序中

3. 显示-兼容性问题
注入dll导致渲染失败,一些安全厂家注入的dll签名未通过,最终导致,解决方法只能去找出并卸载

    • 查看注入的dll列表edge://conflicts/#R
    • 如果存在非微软和谷歌签名的dll,就存在嫌疑了,(我遇到的是用户电脑上安装了T.E.C公司的软件,用来监测电脑)
      具体资料参考

4、个别用户碰到的不兼容问题:WebView2 is rendering the page but the content is displayed all transparent · Issue #1118 · MicrosoftEdge/WebView2Feedback · GitHub

这里面提到 chrome 内核对于各种 GPU 的兼容性,可能导致 chrome 的渲染不工作。

设置环境变量 WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS 为 --disable-gpu-driver-bug-workarounds --ignore-gpu-blocklist 可以让 chrome 内核忽略不兼容问题。

 -- 这里可以直接命令行执行:setx WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS "--disable-gpu-driver-bug-workarounds --ignore-gpu-blocklist"

posted on   z5337  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示