栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

「GoCN酷Go推荐」Golang轻量级桌面程序wails2教学

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

「GoCN酷Go推荐」Golang轻量级桌面程序wails2教学

01

推荐理由

不依赖cgo!不依赖cgo!不依赖cgo!真的不依赖cgo,且跨平台,原生渲染 无嵌入式浏览器,轻量级,生成的文件很小,而且只有一个可执行文件就可运行。

02

功能介绍

  1. 后端使用标准 Go

  2. 使用任意前端技术构建 UI 界面

  3. 快速为您的 Go 应用生成 Vue、Vuetify、React 前端代码

  4. 通过简单的绑定命令将 Go 方法暴露到前端

  5. 使用原生渲染引擎 - 无嵌入式浏览器

  6. 共享事件系统

  7. 原生文件系统对话框

  8. 强大的命令行工具

  9. 跨多个平台

03

使用指南

本次教学在windows下进行。

04

安装

1、首先要安装三个必要的东西:
npm: https://nodejs.org/en/download/
webviews2: https://developer.microsoft.com/zh-cn/microsoft-edge/webview2/#download-section (下载常青版引导程序
,记得安装是一定用管理员安装)
*upx:https://github.com/upx/upx/releases/tag/v3.96 (下载后:upx-3.96-win64.zip,然后放入环境变量)

2、golang版本必须是1.17及其以上,安装wails工具:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
3、wails doctor (用此命令查看是否已安装完整必要依赖) 如下图:
1
目录结构概要:
/main.go - 主应用
/frontend/ - 前端项目文件
/build/ - 项目构建目录
    /build/appicon.png - 应用程序图标
    /build/darwin/ - Mac 特定的项目文件
    /build/windows/ - Windows 特定的项目文件
/wails.json - 项目配置
/go.mod - Go 模块文件
/go.sum - Go 模块校验文件

frontend目录没有特定于 Wails 的内容,可以是您选择的任何前端项目。
build目录在构建过程中使用。这些文件可以修改以自定义您的构建。如果文件从构建目录中删除,将重新生成默认版本。
go.mod中的默认模块名称是“changeme”。您应该将其更改为更合适的内容。
开始做我们的圣诞树

1、首先,利用wails工具创建一个项目:

wails init -n 项目名称

2、然后,我们开始写咱们的main:(看到go:embed注解就知道为什么要用go1.17及其以上的版本了吧)

package main

import (
 "embed"
 "log"

 "github.com/wailsapp/wails/v2/pkg/options/mac"

 "github.com/wailsapp/wails/v2"
 "github.com/wailsapp/wails/v2/pkg/logger"
 "github.com/wailsapp/wails/v2/pkg/options"
 "github.com/wailsapp/wails/v2/pkg/options/windows"
)

//go:embed frontend/src
var assets embed.FS

//go:embed build/appicon.png
var icon []byte

func main() {
 // 创建一个APP结构体实例
 app := NewApp()

 // 给这个APP设置参数
 err := wails.Run(&options.App{
  Title:             "GoCN祝天下所有的Gopher圣诞节快乐",
  Width:             720,
  Height:            570,
  MinWidth:          720,
  MinHeight:         570,
  MaxWidth:          1280,
  MaxHeight:         740,
  DisableResize:     false,
  Fullscreen:        false,
  Frameless:         false,
  StartHidden:       false,
  HideWindowOnClose: false,
  RGBA:              &options.RGBA{R: 33, G: 37, B: 43, A: 255},
  Assets:            assets,
  LogLevel:          logger.DEBUG,
  OnStartup:         app.startup,
  OnDomReady:        app.domReady,
  OnShutdown:        app.shutdown,
  Bind: []interface{}{
   app,
  },
  // Windows平台特定选项
  Windows: &windows.Options{
   WebviewIsTransparent: false, // 背景是否半透明
   WindowIsTranslucent:  false, // 导航条是否半透明
   DisableWindowIcon:    false, // 是否关闭窗口上的图标
  },
  Mac: &mac.Options{
   TitleBar:             mac.TitleBarHiddenInset(),
   WebviewIsTransparent: true,
   WindowIsTranslucent:  true,
   About: &mac.AboutInfo{
    Title:   "Vanilla Template",
    Message: "Part of the Wails projects",
    Icon:    icon,
   },
  },
 })

 if err != nil {
  log.Fatal(err)
 }
}

3、写咱们的前端,在frontend/src/index.html下写入下面的代码(我也是抄h阿泉的):




    圣诞节快乐
    
    



    
    

    

4、在当前目录下用命令行开启开发者热加载工具查看效果:

wails dev

效果图来啦,提前祝各位2021圣诞节快乐~:

https://cdn.xinchao.com/goods/202112/6082eea0f69486dc233fecde834dd8911920x1080.gif

5、当然我们也可以打包成自己的可执行二进制文件哟:

wails build

生成的文件放在了build/bin下。

05

总结

其实之前我也知道有不少的go桌面应用库,可要么就是效率低,要么就是生产的二进制文件太大,但wails似乎让我看到了新希望,很多简单的桌面级小应用可能会因此而诞生更多。

06

参考资料

  1. wails中文文档(https://wails.io/zh-Hans/docs/reference/options)

  2. 源码仓库((https://github.com/wailsapp/wails)

《酷Go推荐》招募:

各位Gopher同学,最近我们社区打算推出一个类似GoCN每日新闻的新栏目《酷Go推荐》,主要是每周推荐一个库或者好的项目,然后写一点这个库使用方法或者优点之类的,这样可以真正的帮助到大家能够学习到

新的库,并且知道怎么用。

大概规则和每日新闻类似,如果报名人多的话每个人一个月轮到一次,欢迎大家报名!戳「阅读原文」,即可报名

扫码也可以加入 GoCN 的大家族哟~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/903503.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号