问题标签 [webview2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
916 浏览

webview2 - 在 Microsoft.Web.WebView2.Wpf 组件中禁用 Devtools

我想从 wpf 应用程序 .net5 中的 Webview2 组件中禁用 devtools。请帮我怎么做?

0 投票
1 回答
1154 浏览

c# - WebView2 源属性不启动 CoreWebView2

我花了半个小时试图找出这个乏味的问题,除非设置了 Source 属性,否则您无法导航字符串。

毕竟,我想出了一个解决方法,因为 WebView2 需要一个 html 文件的绝对路径或其他任何东西。

即使在这一切之后。它仍然说“您需要设置 Source 属性!!”。这让我发疯了。

null.html也是一个有效的 html 文件。它只是空的,因为我需要显示的 HTML 太动态而无法缓冲到文件中。

0 投票
1 回答
536 浏览

c# - 将 WebView2 合并到 WinForm 自定义控件中

我正在尝试将 WebView2 控件合并到 WinForm 应用程序中。此应用程序在多个页面(选项卡、对话框表单)中使用 Web 浏览器,然后我创建了一个自定义控件(在我的示例代码中命名为 WebViewCtrl)将 WebView2 控件与一些按钮(地址文本、下一步、上一个)合并在一起并刷新)。在我将自定义控件添加到主窗口之前,一切似乎都运行良好。当我将控件放在模态对话框窗口中时,当我需要关闭对话框(名为 TestDialog)时,webView2 控件丢失的是父亲仍然暂停在屏幕上。

您可以在一个非常简单的工作示例中检查此行为,我已在 github 中加载了该示例,其中包含重现问题的基本代码:

https://github.com/LeonardoDaga/WebView2-Dialog-Sample

我不明白在处理对话框表单之前是否需要做一些事情来杀死控件。如果您有任何建议,请提供帮助。

0 投票
1 回答
589 浏览

c++ - WebView2 代理 C++

我在 GitHub 上找到了这个线程,但似乎代码不是 C++:

所以我唯一要求的是提供通过 C++ 为 WebView2 设置代理的解决方案。


我有ICoreWebView2接口,但没有EnsureCoreWebView2Async方法。另一方面,我有CoreWebView2EnvironmentOptions课。

0 投票
1 回答
579 浏览

wpf - WebView2 交互视图模型 (WPF/C#) --> RestrictDomain

亲爱的网络大学,

我想在我的应用程序中使用 WebView2,但是我希望在我的视图模型文件中使用 RestrictDomain,该文件通常在 view.xaml.cs 文件中定义。这有可能以某种形状或形式绑定它吗?代码也不像:

xml:

视图模型:

视图模型中的 webView2Name 没有被重新定义,所以这只是另一个问题之上的另一个问题。(网络链接设置在其他地方)

如果有人能找到或知道任何解决方案,那将是非常受欢迎的。

伟大的,是我杰西

0 投票
0 回答
112 浏览

c# - Nuget 包将文件添加到输出文件夹,其中包含针对不同架构的不同文件

我将在这里提供相当多的背景信息,因为我认为这有助于解释我为什么选择这条路线(希望意味着如果有人有其他建议,他们知道我的最终目标是什么)。

我们有一个 C# winforms 应用程序,我们想在其中使用来自 Microsoft https://developer.microsoft.com/en-us/microsoft-edge/webview2/的新 WebView2 控件

快速总结一下,微软的这个新的 web 视图控件与旧的不同,因为它不期望已经安装了幕后的浏览器/运行时。WebView2 使用自己的自定义 Edge Chromium Runtime,基于新的 Edge Chromium。这意味着即使安装了 Edge Chromium 浏览器也不能算作安装了运行时。

所以微软提供了3种安装运行时的方法。

  1. 一个小的引导程序常青安装程序,您包含在您的应用程序中,然后下载并安装运行时安装程序并安装它,然后使其自身保持最新
  2. 完整的常青安装程序,以防您需要能够在离线时安装
  3. 一组固定版本的二进制文件

选项 1 和 2 都需要提升才能运行 - 这对我们来说是一个障碍,我们的应用程序不需要安装提升。

所以剩下3个。

3 的最终目标是运行时的所有二进制文件都与我们的应用程序捆绑在一起,我们只需将 WebView2 配置指向使用应用程序文件夹中的运行时 exe。简单对。

那么这是我的问题。

我不希望 git repo 中的那些二进制文件.. 所以一个 nuget 包听起来很明智。只需使用内容文件夹将大量二进制文件复制到输出文件夹并将它们作为资源嵌入即可。

我遇到的问题是 Microsoft 提供的二进制文件是特定于处理器架构的(我关心的是 x86 和 x64)。

我正在努力寻找如何实现这一目标。

我查看了此博客https://devblogs.microsoft.com/nuget/nuget-contentfiles-demystified/ ,其中指出我可以为特定语言和 .net 运行时特定文件创建文件夹..但没有提及处理器架构。

有谁知道是否可以从 nuget 包中获得特定于体系结构的内容文件?或者,如果有更好的方法来做到这一点。

谢谢

0 投票
1 回答
164 浏览

c++ - 如何在 WebView2 中设置基于选项卡的 cookie?

如何设置仅适用于浏览器中特定选项卡的 cookie?Chrome 在正常模式和隐身模式下将 cookie 分开。我想要实现的目标与此类似,但我想为正常模式下的每个选项卡执行此操作。

0 投票
1 回答
430 浏览

c# - 应用 NativeWinAPI 样式后 C# 过度重绘 WebView2 控件

经历了各种形式的闪烁和图形故障后,我在网上搜索了可能的解决方案。唯一可以立即使用的解决方案是使用 NativeWinAPI 从下面的帖子中接受的解决方案: 避免在 Windows 窗体中闪烁?

在应用程序的主窗体中插入此代码并保留“this”的句柄实际上消除了我在图形方面遇到的所有问题。

至少在我包含 Web 浏览器(WebView2 控件)之前。该控件与帖子中的代码一起导致控件本身不断地重新绘制自身。这反过来会导致 WebView2 的父级整个用户控件中出现图形问题。其他控件闪烁进出,非常烦人和不愉快。

花了几个小时(实际上是几天)试图找出问题所在并实际上重写了整个项目,问题被定位并在禁用设置窗口样式的功能后立即消失。

我相当确定 WebView2 Control 是唯一有问题的控件,因为我创建了 OnPaint 函数,每次重绘控件时都会写入控制台,并且禁用 webview2 会阻止其他控件被重绘,而启用后,我会在几秒钟内获得 100 次重绘秒。

问题是禁用这些更改会使应用程序看起来更糟,因为它之前修复了所有闪烁和图形故障。

我不明白链接中的代码到底做了什么(对于我目前的知识来说太高级/复杂)。如果有人能帮我弄清楚如何解决这个问题,我将不胜感激。

更新:我为任何有兴趣解决这个问题的人创建了一个小型演示项目。这是放置在谷歌驱动器上的项目的 7zip:

闪烁Demo.7z

WebView2 需要 Microsoft Edge Canary 浏览器才能正常工作: 在此处下载 Edge Canary

主窗体具有控制图形改进和闪烁的布尔标志。只需将其设置为 true/false 即可观察差异。

调试.WriteLine(); - 将 Paint Event 计数器输出到 Visual Studio 的控制台中。

0 投票
2 回答
1104 浏览

c# - 当页面视频全屏时,将 Webview2 切换到全屏

我有一个网页,它基本上是一个带有自定义控件的视频,该控件已放入 webview2 中,当我尝试使用该页面具有的全屏控件时,它不会进入全屏状态。我没有对代码进行任何更改,因为它是一个全新的 webview2 和项目。

有谁知道我该怎么做?

0 投票
1 回答
42 浏览

webview2 - WebView2:导航到第二页导致远程信使错误

将 webview2 浏览器导航到绑定了主机对象的网页,调用 window.chrome.webview.hostObjects,然后导航到另一个页面似乎重新处理现有的远程信使响应,然后生成大量 javascript 错误,因为响应已经被处理了。这似乎是 webview2 的错误,还是我做错了什么?目前有解决方法吗?