Golang Go语言开发桌面Web软件如何,点击运行直接打开浏览器,本地方法通过Go导出给JS调用
Golang Go语言开发桌面Web软件如何,点击运行直接打开浏览器,本地方法通过Go导出给JS调用
优点:
静态打包,不需要额外依赖
跨平台,能在 mac、linux、windows 等主流平台运行
双击运行与本地桌面软件一致
体积小不到 5m 能提供与 electron 一样的功能
缺点:
运行需要本地启动服务器
运行在安装的默认浏览器上
一年前起过个头,思路差不多,调系统 webbiew 的 https://github.com/faceair/hybrid-go
有空再填一下…
更多关于Golang Go语言开发桌面Web软件如何,点击运行直接打开浏览器,本地方法通过Go导出给JS调用的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
思路差不多,不过我想的是,不带 webview 这些,系统托盘、菜单等等这些都不要,就只要调用本地方法的能力
#2 那直接写个 golang web server 就完了…
是的,目前有一个小项目用了,做串口通信的,效果不错,打包起来,到处运行
别人打包是怕环境没有浏览器,你这个大小不就是减掉浏览器的大小嘛
蛮好的,但注定是小众方式,绝大多数普通用户还是只愿意接受独立的软件。
有界面的操作系统上面都肯定有浏览器存在着,别人打包是想以本地应用方式运行
还有兼容性的考虑
已经有了啊,lorca,调用本地谷歌浏览器,但是打包还是有 10 几 m 的样子,但是总感觉 webview 的应用卡卡的
再加一个系统托盘,双击打开浏览器的同时收到系统托盘,就完美了
10 来兆应该是 go runtime 的大小了…
静态文件也会打进去,可能排除这个差不多了
个人觉得既然是弄带界面的程序就直接弄各平台的酷炫界面,要不然就整 web 版。
需要用本地的一些方法,但是又不想开发桌面这种这么重的,不知道还有没有什么好方法
其实就是个本地信使,Firefox 有一个 open with 插件(用其他软件打开某个 URL ),也是靠本地信使的。
没毛病。
在Go语言中开发桌面Web软件是一个既实用又高效的方案。利用Go语言的强大性能和跨平台特性,结合现代Web技术(HTML、CSS、JavaScript),可以构建出功能丰富、响应迅速的桌面应用。
实现点击运行直接打开浏览器的效果,通常可以采用以下步骤:
-
嵌入式浏览器:使用Go的webview库(如
webview
或webview-go
),它允许你在Go应用中嵌入一个无头浏览器,加载本地或远程的Web页面。这种方式下,Go程序作为后端,通过HTTP服务提供前端资源,而webview则作为前端展示层。 -
本地方法导出:Go提供了强大的CGo功能,允许调用C语言库,以及通过一些桥接库(如
wasm_exec.js
用于WebAssembly,或syscall/js
在浏览器环境中)与JavaScript进行双向通信。你可以将Go函数封装为可被JavaScript调用的接口,实现前后端的无缝对接。 -
打包与分发:利用工具如
fyne-io/fyne
(虽然它更偏向原生UI,但也有Webview支持)或electron-builder
(结合Node.js和Electron)进行应用的打包,确保在不同操作系统上的一致运行体验。
总之,Go语言结合Web技术开发桌面Web软件是一个灵活且强大的选择,既能享受Go语言的性能优势,又能利用Web生态的丰富资源。通过合理的架构设计,可以实现高效的本地方法与Web前端交互,为用户提供流畅的应用体验。