如何为现有的 Web 应用程序创建桌面应用程序?

How to create a desktop app for the existing web application?

好吧,我尝试在创建问题之前进行一些研究,但只发现了一点点。

基本上,我有一个基于 Spring 的 Web 应用程序。显然,您可以使用 HTTP 请求和 URL 在 Web 应用程序中导航。如果您想编辑用户,您可以执行 GET 请求 /users/edit/{id} 并出现一个新页面。然后您对用户进行一些更改并执行 POST 请求 /users/edit/{id} 假设出现主页。

所以,现在我需要创建一个可以执行相同操作的桌面应用程序。 我需要重写整个应用程序才能将其移植到桌面吗?是否有可能以某种方式从桌面应用程序向服务器发出 HTTP 请求,然后获得响应并进行处理?或者有什么合适的方法吗?

我觉得这是一个很大的话题,但我只需要给我指明正确的方向,因为我缺乏经验同时创建桌面和 Web 应用程序 (我会说,我从未将应用程序从 Web 移植到桌面,反之亦然)

之前我使用 JavaFX 创建了一些应用程序,我想再次使用它作为桌面应用程序的 GUI 平台。

您可以寻求 Electron 之类的解决方案。

它是一个框架,用于使用 JavaScriptHTMLCSS 等 Web 技术创建本机应用程序。它使用 ChromiumNode.js。您可以使用最初为 Web 应用程序开发的前端和后端组件开发桌面 GUI 应用程序。

我只是给你指路。您可以查看此解决方案,它也是开源的。

如果你打算从头开始开发前端,我建议你使用类似 Ionic Framework 的东西,在最新的 beta 4 中,你可以在任何地方写一次 运行 (网络,PWA ,带有 Electron 的桌面,并为 iOS 和 Android 构建本机构建)。 基本上 Ionic 是一个 Angular 7 library/superset 允许你创建基于 webview 的移动应用程序。此 webview 可以以本机方式嵌入并 运行 在任何设备上。

即使相同的代码库可以 运行 在多个设备上,您也可以自定义每个平台上的外观,并通过 Cordova、Electron 或 Capacitor 访问本机设备功能和硬件。

如果您不想重写 Web 客户端,您可以使用任何具有您想要的首选语言的桌面框架。任何现代 language/framework 都允许您对后端发出 HTTP 请求并通过 API 获取数据。 老实说,现在我觉得 JavaFX 不是最好的选择,我建议您使用基于 Web 的方法。

祝你好运!