文章目录

  • 介绍
    • 开发环境要求
    • 优点
    • 项目结构
    • 样例-markdown编辑器
    • 偶然冲突
    • 与electron比较

介绍

发现一个很不错的开源项目:wails是一个使用现代化web技术(vite+vue3, react等)构建桌面端应用的go语言项目,其兼容性不错, 界面效果和性能与electron差不多。官网:https://wails.io/zh-Hans/docs/gettingstarted/firstproject

开发环境要求

  • go >= 1.18
  • node >= 16

优点

  • 项目结构清晰,ui层和基础功能分离。
  • 和web前端一样的开发体验,带F12console控制台,支持热更新。
  • 体积小,打包exe 10M左右。
  • 支持多端
    • win10、win11 64位 (依靠微软webview2内核)
    • win7 64位 (依靠微软webview2_v109内核, v109内核下载地址)
    • linux 64位(amd64/arm64) (依靠libgtk3 和libwebkit2gtk两个库, deepin 20上测试功能正常)
    • MacOS 10.13+ AMD64
    • MacOS 11.0+ ARM64

项目结构

样例-markdown编辑器

基于go wails构建的markdown编辑器。

偶然冲突

如果电脑上装了安全管家之类的(如奇安信), 会被屏蔽webview2内核的dll库,应用无法正常运行,甚至edge浏览器也无法运行。相反,electron打包的应用可以正常运行。
不清楚是不是只是这台电脑的问题。。

与electron比较

  • electron打包产物,会包含完整的chromium内核以及nodejs,其体积会在300M起步(版本chromium 100+ )
  • walis打包的应用, 基础包10M, 所有应用共用一个webview2内核。只需要安装一次依赖就行。
  • 两者都是用js等前端技术搞定桌面跨端应用, UI层逻辑开发差不多。electron提供大量的原生接口以及系统交互接口,文档较多; wails只提供基本的系统交互逻辑(文件选择框,系统通知接口,系统对话框,剪切板访问等), 其余逻辑需要自行用go实现)

【go语言】使用wails构建桌面端应用(可跨三端)相关推荐

  1. Vue 全家桶 + Electron 开发的一个跨三端的应用

    GitHub Repo:vue-objccn Follow: halfrost · GitHub 项目地址:https://github.com/halfrost/vue-objccn 利用 Vue. ...

  2. Vue 全家桶 + Electron 开发的一个跨三端的应用 1

    代码地址如下: http://www.demodashi.com/demo/11738.html GitHub Repo:vue-objccn Follow: halfrost · GitHub 利用 ...

  3. 仿qq跨三端app uni-app+springboot+mybatis+websocket(springboot+mybatis)

    前言 我是一名在校的大三学生,怀揣着对编程的热情,对世界的热衷.近期有许许多多原因,课程方面,个人方面,还是客观环境方面,导致我想开发一个仿qq的app.考虑到目前掌握的一些框架,故而以前端框架的方式 ...

  4. 三端合一跨平台开发的深度剖析(值得学习)

    (内容同步自小邹的头条号:沪漂程序员的生活史) 小邹接触到H5跨平台开发还算比较早,是在2015年的一次峰会上.跨平台一直是老生常谈的话题,cordova.ionic.react-native.wee ...

  5. 使用 Electron 构建桌面应用

    作者:kmokidd 链接:https://zhuanlan.zhihu.com/p/20225295 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 译者注:前一段 ...

  6. pywebview:使用python构建桌面客户端应用

    前言 我编写了一些python程序,但我并不满足与只用命令行运行,我希望能构建一个具有界面的桌面客户端应用,来运行我python程序的各种功能. 作为一个前端工程师,我最熟悉的当然就是Electron ...

  7. 使用 Go 和 Web 技术构建桌面应用程序

    <开源精选>是我们分享Github.Gitee等开源社区中优质项目的栏目,包括技术.学习.实用与各种有趣的内容.本期推荐的是一个使用 Go 和 Web 技术构建桌面应用程序的项目--WAI ...

  8. 使用 AngularJS 和 Electron 构建桌面应用

    使用 AngularJS 和 Electron 构建桌面应用 GitHub 的 Electron 框架(以前叫做 Atom Shell)允许你使用 HTML, CSS 和 JavaScript 编写跨 ...

  9. c语言进程间通信架构,构建微服务之:微服务架构中的进程间通信

    这是使用微服务架构构建应用系列的第三篇文章.第一篇文章介绍了微服务架构模式并讨论了使用微服务的优势和劣势 :第二篇文章介绍了应用的客户端如何通过API网关作为中介实现服务间的通信:在这篇文章中我们将看 ...

最新文章

  1. [转载] 晓说——第16期:古代科举那些事——由来
  2. Dora.Interception,为.NET Core度身打造的AOP框架 [5]:轻松地实现与其他AOP框架的整合...
  3. 计算机系统组成_网络教育统考计算机应用基础题库(计算机系统的组成2)
  4. web前端【第十一篇】jQuery属性相关操作
  5. python 3.7.732位安装步骤_Python3.7.0安装教程
  6. 数据库mdf和ldf文件_如何将SQL数据库文件(MDF和LDF)移动到另一个位置
  7. 提高linux运行速度,教你如何提高Linux操作系统的运行速度
  8. 基于Java Web的网络考试系统
  9. 【无标题】drv8825步进电机驱动板子原理图
  10. 新手如何学电影解说剪辑全教程
  11. 解决xshell SSH 连接远程ubuntu make menuconfig 退格键无法删除问题
  12. 现在社会趋势下,很多人想做网上商城,那你知道软件部署方式吗?
  13. 产品分析报告——“京东到家”
  14. 安全绳使用方法图解_安全绳的正确使用方法、使用注意事项及应用
  15. Monitor 采集方式
  16. Excel如何生成条形码图片?
  17. 【web项目】任务倒计时网页
  18. csp-s模拟测试49(9.22)养花(分块/主席树)·折射(神仙DP)·画作
  19. Java毕业设计-考试管理系统
  20. 时下人间道的生存法则

热门文章

  1. ASUS VivoTab RT TF600T忘记系统登录密码,怎么办?
  2. PHP获取当月第一天及最后一天
  3. Windows10 如何降低浏览器的IE版本
  4. 原生js实现addClass,removeClass,hasClass方法
  5. arcgis 生成泰森多边形出错
  6. 怎么用centos7运行c语言程序_centos如何编译c语言代码
  7. python交互式环境是什么意思_如何在交互式环境中执行 Python 程序
  8. L1-028 判断素数 (10 分)(C语言版)
  9. 关闭水狐浏览器缓存设置
  10. 让你受用一生的做人做事36字诀