我发现,直接用前端技术部署一个网站,然后再提供一个小软件用于本地启动一个服务端。这样开发,比起什么套壳客户端, webview, electron,会快很多。虽然不是特别优雅,但是对于只熟悉 web 开发的人来说,还是很方便的

2022-07-02 10:14:55 +08:00
 zxCoder
3294 次点击
所在节点    前端开发
17 条回复
estk
2022-07-02 10:22:26 +08:00
你说的是 uniapp ?
cmdOptionKana
2022-07-02 10:28:42 +08:00
对,这是最最省力的方法,做自用的小工具很好。但如果要给别人用,用户只看外观和方便,非常可惜这种方式用户不买账。
ChenYFan
2022-07-02 10:33:43 +08:00
PWA+本地应用其实也很不错,我的 ClashWeb 改装成 PWA 之后使用体验和 CFW 无异
renmu123
2022-07-02 11:36:00 +08:00
那么小软件你用什么开发呢,electron 可不用考虑兼容性
daliusu
2022-07-02 11:56:57 +08:00
electron 开发跟 web 有啥不一样的吗?如果你不依赖本地的一些 api ,其实就是 web 开发,何来的快很多一说
dcsuibian
2022-07-02 12:15:55 +08:00
那这个服务端是在干什么呢?
charlie21
2022-07-02 12:27:46 +08:00
phpMyAdmin
aria2gui
XCFOX
2022-07-02 12:39:11 +08:00
jupyter
nocodb
strapi
zxCoder
2022-07-02 12:54:27 +08:00
@dcsuibian 比如访问本地文件
zxCoder
2022-07-02 12:55:19 +08:00
@daliusu electron 还是需要一定的学习成本的。跟 web 还是不同的
oldshensheep
2022-07-02 13:05:49 +08:00
本来就有这样的软件,比如 syncthing ,minio 等等,他们有一个 Web 的管理界面,不过他们不是在一个在线的网站上,而是本地的 HTTP 服务器,因为用户要离线运行。
oldshensheep
2022-07-02 13:13:49 +08:00
用在线的网站的话,那样就要求用户联网才能运行,最好是集成到程序内。

而且用在线的网站的话有潜在的安全性问题(相对于本地的来说)。
比如加载的文件的来源不可信,因为前端代码可以随意更新。

如果自己部署的话不如就集成到程序内,很多 go 程序都是怎么做的。
duke807
2022-07-02 13:32:30 +08:00
我寫的 GUI 軟件都是這麼干的,雙擊 python 腳本,自動打開瀏覽器呈現界面。
dcsuibian
2022-07-02 13:34:57 +08:00
@zxCoder 比如说,我想要遍历某个文件夹。web 上的 js 就需要先通过 http 调服务端,服务端获取结果再回来。
而 Electron 就可以直接使用 nodejs 的方法获取结果。
假设做一个带 GUI 的工具程序,后者我感觉能方便不少。如果涉及到服务端推送就更麻烦了。

这样的应用也有,Clash 、qBittorrent Web UI 、H2 Database ,特点就是核心部分都不是用 js 实现的。

主要问题是:什么场景下,这个“本地服务端”是必不可少的
joesonw
2022-07-02 14:04:47 +08:00
electron 你不用它那些 api ,直接 CS 也可以啊,而且用户一键打开。
jsq2627
2022-07-02 14:39:30 +08:00
当然可以。一般 HTTPS 页面没法加载 HTTP 资源,Chrome/Firefox 甚至为这种场景专门开放了个从 HTTPS 页面访问 http://localhost 的口子
https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content#loading_locally_delivered_mixed-resources
MonoLogueChi
2022-07-02 19:12:43 +08:00
很多软件在用这种方式,Linux 上比较多,Windows 上我见过的比较多的,各种 aria2 的控制面板

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/863576

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX