前言
自fyne命令的v2.1.0版本以来,支持一个元数据文件,允许您在存储库中存储有关应用程序的信息。该文件是可选的,但可以帮助避免记住每个包和发布命令的特定构建参数。
一、使用
该文件应命名为FyneApp.toml。运行fyne命令的目录中的toml(通常是主包)。文件内容如下:
Website = "https://example.com"
[Details]
Icon = "Icon.png"
Name = "My App"
ID = "com.example.app"
Version = "1.0.0"
Build = 1
文件的顶部是元数据,如果您将应用程序上载到https://apps.fyne.io列表页面,因此它是可选的。[Details]部分包含其他应用商店和操作系统在发布过程中使用的应用程序的数据。如果找到该文件,fyne工具将使用该文件。如果存在元数据,则不需要许多强制命令参数。您仍然可以使用命令行参数覆盖这些值。
二、应用
GUI工具不像web应用,通常web应用只需要服务端更新,在浏览器就能浏览最新的版本。而GUI应用为了让用户使用最新的版本,我们通常希望用户在打开GUI应用时能有个版本更新的提示,指引用户去下载最新版本。如下图所示:
实现步骤如下:
- 编写FyneApp.toml文件,例如初始如下:
Website = "https://example.com"
[Details]
Icon = "Icon.png"
Name = "MyApp"
ID = "com.example.app"
Version = "1.0.0"
Build = 1
每次打包前,需要手动设置version,build不需要手动修改,有fyne管理。
- 使用fyne 工具打包,例如windows版本:
fyne package -os windows
命令执行成功后,在当前目录下会输出MyApp.exe文件。因为了有了FyneApp.toml文件,我们不需要在fyne package
输入太多的参数,当然如果你想改变,可以再次传入这些参数,比如:
fyne package --name MyApp-1.0.0 -os windows -icon myIcon.png
打包时,我们约定版本号的格式1.0.0
- 创建一个简单的文件上传下载服务,然后该服务再提供一个获取最新版本的HTTP接口,供GUI应用调用。
打包好的exe文件上传至改服务。 - GUI应用写一个方法,改方法可以从元数据中获取版本号,在和通过请求http接口获取最新的版本号进行比较,如果当前GUI版本小于服务器的版本,则提示用户去下载,单击确定按钮后可以打开浏览器自动跳转到下载页面去。
func checkVersion(app fyne.App, parent fyne.Window) {
//从http服务获取最新的版本号
b, err := connService.HttpConnect(configService.GetConfig().UpgradeUrl + "version")
if err != nil {