问题标签 [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 回答
420 浏览

c++ - 避免 MS 边缘的 UserDataFolder (webview2)

在我的应用程序中,我正在使用 CreateCoreWebView2EnvironmentWithDetails 创建 Edge 环境。现在它正在我的 exe 旁边创建一个文件夹作为“myexe .WebView2”,这是我不想要的。所以我将“C:\Users\username>\AppData\Local\MicrosoftEdge 作为 UserDataFolder 传递。但它仍然在我的应用程序文件夹中创建一个空文件夹“Myexe.webview2”。

这是显示我如何传递参数的示例。

我知道当为 UserDataFolder 传递 NULL 时,edge 在应用程序本地文件夹中创建一个文件夹作为默认位置。但在这里我给出了 UserDataFolder 的位置。

所以问题是:

当我传递“userDataFolder”时,为什么它会在默认位置创建一个名为“myexe.WebView2”的空文件夹?

我应该怎么做才能避免这种情况?

更新:我们使用这个版本已经有一段时间了。将来会升级到最新版本。目前,代码使用 CreateCoreWebView2EnvironmentWithDetails。

0 投票
1 回答
508 浏览

c++ - 是否有注册表值来获取 Edge 浏览器的用户数据位置?

我的应用程序使用 Edge 浏览器在应用程序中启动网页。我正在关注 WebView2 API。

我想"C:\Users\<user>\AppData\Local\Microsoft\Edge"作为"userDataFolder"参数传递给CreateCoreWebView2EnvironmentWithOptions(),因为这个位置是存储浏览器数据的地方。

我不希望我的应用程序数据在我的应用程序文件夹中。

如何从我的应用程序中获取 Edge 浏览器的用户数据位置?我可以为此读取注册表值吗?

0 投票
2 回答
1002 浏览

c++ - 如何在 C++ COM STA 中的 WebView2 接口上等待对 ExecuteScript 的调用完成

我有一个 COM STA,它承载一个 ICoreWebView2。

我尝试获取完整的 HTML 块,并找到了一个文档来使用脚本实现这一点。这是我的代码:

此代码有效,但它是异步执行的。所以需要一些时间才能得到结果。事实上,我可以看到结果在下一次执行消息泵时到达(正如我对 STA 的预期)。

在 C# 中,我会使用 await 来等待完成。但是使用 C++ 没有这样的东西。使用事件是行不通的,因为我有一个 STA,我会阻塞线程并且答案永远不会到达。

有什么方法可以调用等待 C++ 完成的函数?或者另一个帮助是使用ExecuteScript同步。

0 投票
1 回答
303 浏览

msix - 将依赖项添加到 .exe 并使用 MSIX 安装程序中的参数执行

您好我正在尝试学习如何创建 MSIX .appinstaller 以在本地 Intranet 上分发和自动更新应用程序。

我正在尝试测试新的 WebView2。我需要安装程序以静默模式运行 webview2 evergreen 运行时 .exe 文件,如此处所述

我不知道如何做到这一点,也无法从谷歌找到任何东西。我已下载该文件并将其添加到我的包项目中。如何将其添加到安装程序中,以便在安装前运行?

0 投票
1 回答
557 浏览

c++ - 在 WebView2 中拦截 TAB 键

我想拦截 Webview2 中的 Tab 键。

通过ICoreWebView2AcceleratorKeyPressedEventHandler我注册的功能可以拦截很多功能键add_AcceleratorKeyPressed

但是某些键(如光标键和 TAB 键)不会调用此事件处理程序。F5键也一样,接缝有些键是保留的,奇怪的是位置键up、down、pos1、end都可以截取。

因为 WebView2 本身的窗口位于另一个进程中,所以我没有机会使用标准子类化,我想避免使用钩子进行子类化。

0 投票
1 回答
952 浏览

c# - UWP WebView2 无法与安装的 WebView2 运行时一起使用

我根据文档创建了一个 WinUI 3.0 UWP 应用程序并安装了 WebView2 运行时。当我根据文档检查 regkey 及其 pv 属性时,它已设置。但是,在启动我的应用程序时,无论是在调试还是发布,我都看到没有检测到合适的 Microsoft Edge 版本

XML 本身非常简单:

该文档指出,也应该可以依赖 WebView2 运行时进行开发:

在开发和测试期间,您可以使用其中任何一个作为支持 Web 平台。

  • WebView2 运行时
  • 任何 Insider(不稳定)Microsoft Edge (Chromium) 浏览器通道

有没有人设法在不直接安装 Microsoft Edge 的 BETA 版本的情况下运行它,因为这不是一个选项,也不推荐

0 投票
4 回答
5069 浏览

.net - 检测客户端机器上是否安装了 WebView2 (VB.NET)

我正在寻找一种方法来检测客户端计算机上是否安装了 WebView2 运行时,以便如果他们没有安装它,我可以使用旧的 ie 浏览器进行显示。我正在使用 VB.NET。

谢谢

0 投票
1 回答
2088 浏览

c# - 如何通过固定版本分发模式分发我的 WebView2 WPF 应用程序?

我想使用固定版本 WebView2 分发我的 wpf 应用程序,这是我的 XAML 代码:

XAML:

C#:

它不起作用。是否BrowserExecutableFolder设置正确?

0 投票
1 回答
2368 浏览

c# - 在 WebView2 中初始化 EnsureCoreWebView2Async(null) 时出现异常

我正在将浏览器集成到我的软件中。当我继续打开新的浏览器选项卡时它正在工作,但是一旦我关闭一个选项卡并尝试打开新的选项卡,它就会在以下代码中产生异常。

关闭选项卡后重新初始化时发生以下异常:

0 投票
1 回答
751 浏览

javascript - 如何将突变观察者添加到 WebView2 控件

我正在构建一个使用 WebView2 控件的 WinForms 应用程序有没有一种方法可以注入一些 JavaScript,可能使用突变观察者在 ajax 调用后获取 div 的内容?

我认为这可以使用 WebVeiw 中的 ScriptNotify 来完成

我的问题是我可以注入一个脚本,但在 JavaScript 完成之前控件会返回给 WinForms

C#

JavaScript