關於WebView2,是否可以入坑,及踩坑


先結論

首先對於WebView2,我認為是完全可以替代CEF來使用,用起來是真的舒服
微軟團隊這個積極維護這個項目,4周一更新的頻率就可以看出是有多積極
關於資料什么的,網上相對來說已經挺多了,完全不用擔心

優缺點

優點

  • 使用方便,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公司的軟件,用來監測電腦)
    具體資料參考

再結論

坑不大,但也不小,好在項目都在積極維護,只能說入坑不虧
最后附上幾個地址方便使用
官方文檔
Runtime


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM