【发布时间】:2022-11-11 02:31:58
【问题描述】:
问题
我最近用依赖Microsoft.Web.WebView2.WinForms.WebView2 的控件替换了基于System.Windows.Forms.WebBrowser 的控件。这一直运作良好,除了我的用户希望一次运行他们的应用程序的 2 个实例,两种情况偶尔会同时打开该 WebView2 表单。当他们尝试此操作时,两个实例之一无法加载 WebView2 控件,直到另一个实例关闭。
到目前为止学习/尝试过:
我发现 WebView2 非常挑剔,所以我研究了像 CefSharp 这样的替代方案,但在我知道它们可以解决问题之前,我不想花时间来实现它们。据我所知,CefSharp 和 WebView2 在启动基于 Chromium 的浏览器、渲染到 WinForms 控件方面做的事情非常相似。
这个blog post(阅读:广告)付费替代DotNetBrowser表示
您可以使用不同的配置同时初始化和使用多个 Chromium 引擎 [在 DotNetBrowser 中],这在 CefSharp 中是不可能的。
我想知道同样的限制是否适用于 WebView2,并且是我的用户无法一次加载相同表单的 2 个实例的原因。
语境
我支持一个古老的桌面 CRM,它将被淘汰,取而代之的是现代替代方案,但与此同时,旧标准需要与我们引入的新流程集成。其中一个新流程是网页从我们的呼叫中心用户输入数据的外部服务,然后期望 CRM 将输入的数据从网页中提取出来。
我不知道他们的部分过程是上面的 2 实例位:他们习惯于能够从一个嵌入式浏览器窗口复制并粘贴到另一个。
【问题讨论】:
-
每个
WebView2instance 都需要它自己的环境,仅此而已。启动时只需使用不同的设置。
标签: c# microsoft-edge cefsharp webview2 embedded-browser