是否有适用于现代 Web 应用程序的类似 HTA 的解决方案?

Is there an HTA-like solution for modern web apps?

我一直在使用 HTML、CSS 和 JS 开发应用程序,使用 Google Chrome 的应用程序模式命令行参数。它工作得很好,但我希望能够使用本地文件系统 而无需用户手动输入 。也就是说,如果我想直接访问一个文件,我希望它自动完成,而不需要用户加载文件。

一个选项是禁用网络安全,我没有这样做,因为需要正常使用 Google Chrome。我也无法使用命令行参数创建 Chrome 的单独实例。

我尝试在 HTA 上工作,但是任何将代码移植到 HTA 的尝试都以令人头疼的方式结束。此外,它似乎并不享受 Blink/Webkit 授予的特权。

我查看了 Electron 和其他类似平台,它需要安装一些东西,由于计算机设置的原因,这是不行的。

是否有任何带有便携式应用程序的解决方案,可以将其放入包含 HTML 文档(例如,标记为 index.html 或 main.html)的文件夹中,然后打开浏览器它直接打开该文件而无需配置任何东西?一种基于 chromium 的准系统浏览器,只能打开一个文件,允许使用 HTML、JS、CSS 以及本地文件访问?有点像 HTA 但很现代?

好消息是它确实存在,但不像 HTA 那样“开箱即用”。

我的团队已经从 HTA 迁移到 WebView2。

总体方法是使用 WebView2 浏览器构建一个程序(您基本上是在构建自己的类似 HTA 的浏览器)。您的 javascript 代码可以与程序来回通信,而程序又可以完全访问本地资源。

WebView2 是 Microsoft Edge Chromium 浏览器,因此您将获得最新的网络技术和布局(这对 HTA 开发人员来说是一个巨大的痛苦)。包含 WebView2 控件的程序具有对本地文件、比例尺、打印机的完全访问权限(没有弹出对话框)。

该方法具有 HTA 的所有优点(html / javascript 编程、本地文件访问、基于 Web 的部署等),以及现代浏览器的所有布局和其他优点。

您将构建的程序非常小,尤其是与 Electron 等类似解决方案的巨大运行时相比。

Rick Strahl 有一篇关于 WebView2 的优秀文章,以及构建我正在描述的程序的技巧。他对如何为其构建安装程序提供了很好的建议,包括“Evergreen”,它使 WebView2 与最新的浏览器技术保持同步。

微软的技术介绍就到这里。 https://docs.microsoft.com/en-us/microsoft-edge/webview2/