问题标签 [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.
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 应用程序中使用?
delphi - TEdgeBrowser 组件:从嵌入网页上运行的脚本调用本机代码
目前我们使用TWebBrowser
组件将 IE 嵌入到我们的桌面应用程序中。为了从在嵌入式浏览器中运行的脚本调用 Delphi 代码,我们实现了对window.external
对象的支持,如下所述:http: //www.delphidabbler.com/articles/article-22
现在,由于许多原因,我们需要切换到现代浏览器。我们已经升级到引入了新TEdgeBrowser
组件(基于 Chromium 的 MS Edge)的 Delphi 10.4。是否可以使用window.external
也用于TEdgeBrowser
?如果是这样,怎么做?或者还有其他方法如何从嵌入式浏览器中的脚本调用本机代码?
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.html或http://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 日)没有帮助。
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 版本一起使用?
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 粘贴到其中一个上。切换到另一个空白标签页,然后运行该应用程序。在运行时,使用浏览器单击选项卡,该选项卡现在应该只显示为灰色矩形。
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
并放置到上述演示的编译可执行文件所在的同一文件夹中
似乎过时了,指的是旧0.9.430
版本。实际上,我之前曾使用 Edge Canary 版本和该版本的 WebView2Loader.dll 并且已经工作,但同时发布了 Edge Chromium 的稳定版本,假设有破坏性的 API 更改。
那么,在这一点上是否甚至可以TEdgeBrowser
与 Edge Chromium 一起使用,因为从我尝试过的所有内容来看,它似乎非常没有希望?对我来说,它看起来像是针对 0.9.430 进行了硬编码,并且 RAD Studio 10.4.1 没有更新。有任何解决方法吗?
delphi - 如何在不使用 GetIt 包管理器的情况下在 Delphi IDE 中安装 Nuget 包(.nupkg 文件)?
我正在尝试TEdgeBrowser
在 RAD Studio 10.2 中使用该组件。
我想按照以下指南文档应用该组件:
使用 TEdgeBrowser 组件和对 TWebBrowser 组件的更改
该文档在通过 Getit 包管理器中的边缘搜索安装包后使用该组件。
RAD Studio 10.2 GetIt 无法找到TEdgeBrowser
:
我从 Nuget 站点下载了该软件包,并尝试手动安装该软件包。
所以我从 Nuget 下载链接下载了 nupkg 文件:
文档中对组件和包安装的描述是通过将下载的DLL文件添加到可执行文件路径中来完成的。
如何使用 nupkg 文件在 Delphi IDE 中手动安装包和使用组件?
我尝试使用GetItCmd.exe
,Nuget.exe
等安装它,但是没有足够的指南来说明如何执行此操作,所以我在问这个问题。
我Microsoft.Web.WebView2
从 Nuget 站点下载了 0.9.488 包,但我使用最新版本也没关系。
microsoft-edge - 如何在 Microsoft Edge 官方版本中使用 TEdgeComponent
是否可以将 Delphi 10.4 TEdgeComponent 与 Microsoft Edge 的官方版本和 Edge Canary 频道的 WebView2 一起使用?
我已经在https://www.nuget.org/packages/Microsoft.Web.WebView2上安装了最新的 WebView2 的官方版本, 但它没有用。
我能够让示例项目工作的唯一方法是安装金丝雀频道版本。谈论开发环境不是问题。
但是强制终端用户安装金丝雀频道版本,并不是一个好办法。
如何完成这项任务?
delphi - TEdgeBrowser devtools 元素复制菜单为空
德尔福 10.4.1 TEdgeBrowser。似乎无缘无故,元素 -> 复制菜单只显示“空”,而不是预期的“复制元素”、复制选择器、复制 JS 路径等。服务器上安装的 Edge Beta 浏览器也有同样的问题。我本地 PC 的 Edge 浏览器(也是 Beta 版)具有完整的“复制”菜单,但我的 Delphi 应用程序没有。
我不知道我能做些什么来打破它。我的 Delphi 应用程序的早期版本也给出了相同的结果。
任何帮助将不胜感激!
——斯坦
delphi - 如何在新的 Delphi TEdgeBrowser 中设置用户代理?
我需要更改 TEdgeBrowser 中的用户代理
如何在新的 Delphi TEdgeBrowser VCL 中设置用户代理?
也欢迎任何解决方法!