From e249933f8b94ac8edc0c8bbcd3907e6e7ea2e345 Mon Sep 17 00:00:00 2001 From: ArvinLovegood Date: Sat, 5 Jul 2025 07:54:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(app):=E6=B7=BB=E5=8A=A0macos=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E6=94=AF=E6=8C=81=E5=B9=B6=E4=BC=98=E5=8C=96=E5=BA=94?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 导入 Windows 特定的库,如 systray 和 toast - 更新 go.mod 和 go.sum 文件以包含新库 - 修改 App.d.ts 和 App.js 以支持 Windows 功能 - 更新 GitHub Actions以构建 Windows 版本 - 优化 Windows 平台上的浏览器检查逻辑 --- .github/workflows/main.yml | 6 ++++++ app_windows.go | 16 ++++++++++++++++ backend/data/stock_data_api_windows.go | 2 +- frontend/package.json.md5 | 2 +- go.mod | 2 ++ go.sum | 6 ++++++ 6 files changed, 32 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index dc579a6..cdf0f22 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,9 +21,15 @@ jobs: - name: 'go-stock-windows-amd64.exe' platform: 'windows/amd64' os: 'windows-latest' + - name: 'go-stock-windows-arm64.exe' + platform: 'windows/arm64' + os: 'windows-latest' # - name: 'go-stock-linux-amd64' # platform: 'linux/amd64' # os: 'ubuntu-latest' + - name: 'App' + platform: 'darwin/universal' + os: 'macos-latest' runs-on: ${{ matrix.build.os }} steps: diff --git a/app_windows.go b/app_windows.go index 0b502fb..b38c487 100644 --- a/app_windows.go +++ b/app_windows.go @@ -3,6 +3,22 @@ package main +import ( + "context" + "encoding/json" + "fmt" + "github.com/duke-git/lancet/v2/convertor" + "github.com/duke-git/lancet/v2/strutil" + "github.com/energye/systray" + "github.com/go-toast/toast" + "github.com/wailsapp/wails/v2/pkg/options" + "github.com/wailsapp/wails/v2/pkg/runtime" + "go-stock/backend/data" + "go-stock/backend/db" + "go-stock/backend/logger" + "time" +) + // startup is called at application startup func (a *App) startup(ctx context.Context) { defer PanicHandler() diff --git a/backend/data/stock_data_api_windows.go b/backend/data/stock_data_api_windows.go index a825f06..4a792e0 100644 --- a/backend/data/stock_data_api_windows.go +++ b/backend/data/stock_data_api_windows.go @@ -27,7 +27,7 @@ func CheckChrome() (string, bool) { // CheckBrowser 在 Windows 系统上检查Edge浏览器是否安装,并返回安装路径 func CheckBrowser() (string, bool) { - if path, ok := checkChromeOnWindows(); ok { + if path, ok := CheckChrome(); ok { return path, true } diff --git a/frontend/package.json.md5 b/frontend/package.json.md5 index 799119d..fce852e 100644 --- a/frontend/package.json.md5 +++ b/frontend/package.json.md5 @@ -1 +1 @@ -8d3264f90073dfceb29c3619775d830d \ No newline at end of file +2d63c3a999d797889c01d6c96451b197 \ No newline at end of file diff --git a/go.mod b/go.mod index 6071f02..8e07268 100644 --- a/go.mod +++ b/go.mod @@ -7,6 +7,7 @@ require ( github.com/chromedp/chromedp v0.11.2 github.com/coocood/freecache v1.2.4 github.com/duke-git/lancet/v2 v2.3.4 + github.com/energye/systray v1.0.2 github.com/gen2brain/beeep v0.11.1 github.com/glebarez/sqlite v1.11.0 github.com/go-ego/gse v0.80.3 @@ -68,6 +69,7 @@ require ( github.com/sergeymakinen/go-bmp v1.0.0 // indirect github.com/sergeymakinen/go-ico v1.0.0-beta.0 // indirect github.com/tadvi/systray v0.0.0-20190226123456-11a2b8fa57af // indirect + github.com/tevino/abool v0.0.0-20220530134649-2bfc934cb23c // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.0 // indirect github.com/tkrajina/go-reflector v0.5.8 // indirect diff --git a/go.sum b/go.sum index 1ab5e97..bbc8d75 100644 --- a/go.sum +++ b/go.sum @@ -23,6 +23,8 @@ github.com/duke-git/lancet/v2 v2.3.4 h1:8XGI7P9w+/GqmEBEXYaH/XuNiM0f4/90Ioti0IvY github.com/duke-git/lancet/v2 v2.3.4/go.mod h1:zGa2R4xswg6EG9I6WnyubDbFO/+A/RROxIbXcwryTsc= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/energye/systray v1.0.2 h1:63R4prQkANtpM2CIA4UrDCuwZFt+FiygG77JYCsNmXc= +github.com/energye/systray v1.0.2/go.mod h1:sp7Q/q/I4/w5ebvpSuJVep71s9Bg7L9ZVp69gBASehM= github.com/esiqveland/notify v0.13.3 h1:QCMw6o1n+6rl+oLUfg8P1IIDSFsDEb2WlXvVvIJbI/o= github.com/esiqveland/notify v0.13.3/go.mod h1:hesw/IRYTO0x99u1JPweAl4+5mwXJibQVUcP0Iu5ORE= github.com/gen2brain/beeep v0.11.1 h1:EbSIhrQZFDj1K2fzlMpAYlFOzV8YuNe721A58XcCTYI= @@ -47,6 +49,7 @@ github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.4.0 h1:CTaoG1tojrh4ucGPcoJFiAQUAsEWekEWvLy7GsVNqGs= github.com/gobwas/ws v1.4.0/go.mod h1:G3gNqMNtPppf5XUz7O4shetPpcZ1VJ7zt18dlUeakrc= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -137,6 +140,8 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/tadvi/systray v0.0.0-20190226123456-11a2b8fa57af h1:6yITBqGTE2lEeTPG04SN9W+iWHCRyHqlVYILiSXziwk= github.com/tadvi/systray v0.0.0-20190226123456-11a2b8fa57af/go.mod h1:4F09kP5F+am0jAwlQLddpoMDM+iewkxxt6nxUQ5nq5o= +github.com/tevino/abool v0.0.0-20220530134649-2bfc934cb23c h1:coVla7zpsycc+kA9NXpcvv2E4I7+ii6L5hZO2S6C3kw= +github.com/tevino/abool v0.0.0-20220530134649-2bfc934cb23c/go.mod h1:qc66Pna1RiIsPa7O4Egxxs9OqkuxDX55zznh9K07Tzg= github.com/tidwall/gjson v1.14.2 h1:6BBkirS0rAHjumnjHF6qgy5d2YAJ1TLIaFE2lzfOLqo= github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= @@ -201,6 +206,7 @@ golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=