问题标签 [tedgebrowser]

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 投票
3 回答
8445 浏览

delphi - 在 Delphi / C++ Builder 中使用 WebView (EdgeHTML)

我是否正确理解 EdgeHTML 现在可用于 Windows 10 中的桌面(Win32/Win64 应用程序)?根据这些博客文章:

https://blogs.windows.com/msedgedev/2018/05/09/modern-webview-winforms-wpf-apps/ https://blogs.windows.com/msedgedev/2018/10/04/edgehtml-18- october-2018-update/ https://docs.microsoft.com/en-us/windows/communitytoolkit/controls/wpf-winforms/webview

微软似乎已经为 Windows 桌面 (Win32) 应用程序添加了 EdgeHTML WebViewControl,这些应用程序到目前为止还不能用于桌面应用程序(只有基于 Trident 的 MSHTML 控件可用于桌面应用程序)。

如果这是真的,是否有可能在 Delphi/C++ Builder 中使用它,或者我们是否必须在 RAD Studio 的新更新中等待新的TWebView控件?如果可能的话 - 是否有任何代码示例可供查看(C++ Builder 或 Delphi)?.NET 的要求是否意味着它不能在 RAD Studio 制作的常规 Win32/Win64 应用程序中使用?

0 投票
1 回答
2038 浏览

delphi - TEdgeBrowser 组件:从嵌入网页上运行的脚本调用本机代码

目前我们使用TWebBrowser组件将 IE 嵌入到我们的桌面应用程序中。为了从在嵌入式浏览器中运行的脚本调用 Delphi 代码,我们实现了对window.external对象的支持,如下所述:http: //www.delphidabbler.com/articles/article-22

现在,由于许多原因,我们需要切换到现代浏览器。我们已经升级到引入了新TEdgeBrowser组件(基于 Chromium 的 MS Edge)的 Delphi 10.4。是否可以使用window.external也用于TEdgeBrowser?如果是这样,怎么做?或者还有其他方法如何从嵌入式浏览器中的脚本调用本机代码?

0 投票
1 回答
1549 浏览

delphi - TEdgeBrowser Navigate 失败并出现错误“找不到文件”

我第一次尝试新的尝试TEdgeBrowser失败,“系统找不到文件”

错误代码 -2147024894 = $80070002确实是 ERROR_FILE_NOT_FOUND

序列(例如按照https://www.delphipraxis.net/204266-new-vcl-tedgebrowser-component-coming-rad-studio-10-4-a.htmlhttp://docwiki.embarcadero.com/RADStudio /Sydney/en/Using_TEdgeBrowser_Component_and_Changes_to_the_TWebBrowser_Component):

  • 新建Win10 VM,启动Edge,win安装程序运行并正确安装Edge
  • 通过GetIt下载并安装Edgeview2 SDK
  • 复制c:\Program Files (x86)\Embarcadero\Studio\21.0\Redist\win32\WebView2Loader.dll到应用程序目录

配置:Delphi 10.4.3 Sydney,在 Win10 VM 中运行 32 位应用程序,安装 Edge 84.0.522.52

尝试:https:前面没有,重新启动,试图从TApplicationEvents.OnException

然后我尝试运行演示c:\Users\Public\Documents\Embarcadero\Studio\21.0\Samples\Object Pascal\VCL\WebBrowser\Edge\EdgeBrowser.dproj(将 dll 也复制到该目录中),但这会从其末尾给出初始化错误:

但现在 AResult 是 -2147467259 = $80004005
,这似乎与数据/ODBC 相关。

更新到 Microsoft.Web.Webview2 的更高版本 0.9.579(2020 年 7 月 20 日)没有帮助。

0 投票
1 回答
804 浏览

delphi - Microsoft.WebView2 & Edge

我正在尝试使用来自 microsoft.web.webview2.0.9.579.nupkg 的 Microsoft.WebView2 (来自 Delphi 10.4 版本 27.0.38860.1461 的 TEdgeBrowser 示例)

此版本仅适用于 Edge 的金丝雀或 beta版本。随着 Edge 的发布,我收到一条错误消息找不到 Edge 安装。您是否安装了与此 WebView2 SDK 版本兼容的版本?

文档仅介绍了 Edge 的金丝雀版本。

哪个版本的 Microsoft.WebView2 将与 Edge 版本一起使用?

0 投票
0 回答
511 浏览

delphi - WebView2 (TEdgeBrowser) 在后台不工作(如果在屏幕上不可见) - 仅显示为灰色矩形

我已经使用标准的 Delphi 10.4 EdgeBrowser VCL 演示确认了这个问题,唯一的区别是我将带有 edgebrowser 组件的面板放在了 TPageControl 选项卡上。

现在,如果我的应用开始时 Edgebrowser 在屏幕上不直接可见(因为另一个选项卡处于活动状态),Edgebrowser 将永远不会在以后的任何时间完全在屏幕上绘制。它只会将自己呈现为一个灰色矩形并且无法从中恢复,除非我 EdgeBrowser.CloseWebView; EdgeBrowser.CreateWebView; 在 Edgebrowser 组件在屏幕上可见时调用(它必须是可见的,否则再次没有任何反应)。

这意味着当 Edgebrowser 在后台、另一个选项卡上或表单被隐藏时,我不能发出“Edgebrowser.Navigate”命令或任何东西,否则它将再次“变灰”。

我想知道:这是一个错误还是我在这里遗漏了一些重要的东西?我尝试调用 Edgebrowser.Refresh 和 Edgebrowser.Repaint 但都没有帮助。一旦它变灰,只有关闭并重新创建 WebView 有助于恢复它。

我似乎很清楚这是某种画布问题,但我不知道从哪里开始。我希望你能帮助或至少确认这种奇怪的行为。

系统规格: VMware Workstation 16 microsoft.web.webview2.0.9.579 中的 Windows 10 Pro 20H2 中的 Delphi 10.4 Update 1 来自nuget和最新的 Edge Runtime 来自此处(使用引导安装程序安装)

要在您的系统上快速重新创建相同的场景: 打开“C:\Users\Public\Documents\Embarcadero\Studio\21.0\Samples\Object Pascal\VCL\WebBrowser\Edge\EdgeBrowser.dproj”;将 pnlWebViewHost 剪切到剪贴板(这是包含 Edgebrowser 组件的面板);插入 TPageControl;添加 2 个选项卡并将 pnlWebViewHost 粘贴到其中一个上。切换到另一个空白标签页,然后运行该应用程序。在运行时,使用浏览器单击选项卡,该选项卡现在应该只显示为灰色矩形。

0 投票
1 回答
1696 浏览

delphi - 无法初始化 Edge 浏览器控件

很难尝试运行如何TEdgeBrowser在 Windows 10 上使用组件的示例。

使用最新的 RAD Studio 10.4.1 (27.0.38860.1461)

该示例位于此路径下:

c:\Users\Public\Documents\Embarcadero\Studio\21.0\Samples\Object Pascal\VCL\WebBrowser\Edge\

尝试启动会导致“无法初始化 Edge 浏览器控件”。

我尝试了什么:

  • 安装了最新的稳定 Edge 版本(88.0.705.68(官方构建)(64 位))

  • 从下载并安装运行时 https://developer.microsoft.com/en-us/microsoft-edge/webview2/

  • 下载了这个: https://www.nuget.org/packages/Microsoft.Web.WebView2/1.0.705.50

  • 提取WebView2Loader.dll并放置到上述演示的编译可执行文件所在的同一文件夹中

文档: http ://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_TEdgeBrowser_Component_and_Changes_to_the_TWebBrowser_Component

似乎过时了,指的是旧0.9.430版本。实际上,我之前曾使用 Edge Canary 版本和该版本的 WebView2Loader.dll 并且已经工作,但同时发布了 Edge Chromium 的稳定版本,假设有破坏性的 API 更改。

那么,在这一点上是否甚至可以TEdgeBrowser与 Edge Chromium 一起使用,因为从我尝试过的所有内容来看,它似乎非常没有希望?对我来说,它看起来像是针对 0.9.430 进行了硬编码,并且 RAD Studio 10.4.1 没有更新。有任何解决方法吗?

0 投票
0 回答
449 浏览

delphi - 如何在不使用 GetIt 包管理器的情况下在 Delphi IDE 中安装 Nuget 包(.nupkg 文件)?

我正在尝试TEdgeBrowser在 RAD Studio 10.2 中使用该组件。

我想按照以下指南文档应用该组件:

使用 TEdgeBrowser 组件和对 TWebBrowser 组件的更改

该文档在通过 Getit 包管理器中的边缘搜索安装包后使用该组件。

RAD Studio 10.2 GetIt 无法找到TEdgeBrowser

未找到结果图片

我从 Nuget 站点下载了该软件包,并尝试手动安装该软件包。

所以我从 Nuget 下载链接下载了 nupkg 文件:

Microsoft.Web.WebView2 下载链接

文档中对组件和包安装的描述是通过将下载的DLL文件添加到可执行文件路径中来完成的。

如何使用 nupkg 文件在 Delphi IDE 中手动安装包和使用组件?

我尝试使用GetItCmd.exe,Nuget.exe等安装它,但是没有足够的指南来说明如何执行此操作,所以我在问这个问题。

Microsoft.Web.WebView2从 Nuget 站点下载了 0.9.488 包,但我使用最新版本也没关系。

0 投票
1 回答
104 浏览

microsoft-edge - 如何在 Microsoft Edge 官方版本中使用 TEdgeComponent

是否可以将 Delphi 10.4 TEdgeComponent 与 Microsoft Edge 的官方版本和 Edge Canary 频道的 WebView2 一起使用?

我已经在https://www.nuget.org/packages/Microsoft.Web.WebView2上安装了最新的 WebView2 的官方版本, 但它没有用。

我能够让示例项目工作的唯一方法是安装金丝雀频道版本。谈论开发环境不是问题。

但是强制终端用户安装金丝雀频道版本,并不是一个好办法。

如何完成这项任务?

0 投票
0 回答
90 浏览

delphi - TEdgeBrowser devtools 元素复制菜单为空

德尔福 10.4.1 TEdgeBrowser。似乎无缘无故,元素 -> 复制菜单只显示“空”,而不是预期的“复制元素”、复制选择器、复制 JS 路径等。服务器上安装的 Edge Beta 浏览器也有同样的问题。我本地 PC 的 Edge 浏览器(也是 Beta 版)具有完整的“复制”菜单,但我的 Delphi 应用程序没有。

我不知道我能做些什么来打破它。我的 Delphi 应用程序的早期版本也给出了相同的结果。

任何帮助将不胜感激!

——斯坦

0 投票
1 回答
208 浏览

delphi - 如何在新的 Delphi TEdgeBrowser 中设置用户代理?

我需要更改 TEdgeBrowser 中的用户代理

如何在新的 Delphi TEdgeBrowser VCL 中设置用户代理?

也欢迎任何解决方法!