87 lines
2.2 KiB
Go
87 lines
2.2 KiB
Go
package main
|
||
|
||
import (
|
||
"embed"
|
||
"net/http"
|
||
"time"
|
||
|
||
"github.com/wailsapp/wails/v3/pkg/application"
|
||
)
|
||
|
||
//go:embed all:frontend/dist
|
||
var assets embed.FS
|
||
|
||
// 标题栏颜色(0x00BBGGRR)
|
||
var (
|
||
titleBarLight = uint32(0xF0F0F0) // #F0F0F0 近白
|
||
titleBarDark = uint32(0x2D2D2D) // #2D2D2D 深灰
|
||
)
|
||
|
||
func main() {
|
||
app := NewApp()
|
||
|
||
wailsApp := application.New(application.Options{
|
||
Name: "U-Desk",
|
||
Description: "桌面文件管理器",
|
||
Services: []application.Service{
|
||
application.NewService(app),
|
||
},
|
||
Assets: application.AssetOptions{
|
||
Handler: application.AssetFileServerFS(assets),
|
||
Middleware: func(next http.Handler) http.Handler {
|
||
return http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
|
||
if req.URL.Path == "/wails/custom.js" {
|
||
// custom.js 未使用,返回空响应避免 404 控制台报错
|
||
rw.Header().Set("Content-Type", "application/javascript")
|
||
rw.WriteHeader(200)
|
||
return
|
||
}
|
||
next.ServeHTTP(rw, req)
|
||
})
|
||
},
|
||
},
|
||
Mac: application.MacOptions{
|
||
ApplicationShouldTerminateAfterLastWindowClosed: true,
|
||
},
|
||
})
|
||
|
||
window := application.Get().Window.NewWithOptions(application.WebviewWindowOptions{
|
||
Title: "U-Desk",
|
||
Width: 1400,
|
||
Height: 900,
|
||
MinWidth: 1000,
|
||
MinHeight: 600,
|
||
BackgroundColour: application.NewRGB(255, 255, 255),
|
||
URL: "/",
|
||
Frameless: true,
|
||
// 保留 Windows 11 原生装饰(圆角 + Aero 阴影)
|
||
Windows: application.WindowsWindow{
|
||
Theme: application.SystemDefault,
|
||
CustomTheme: application.ThemeSettings{
|
||
LightModeActive: &application.WindowTheme{
|
||
TitleBarColour: &titleBarLight,
|
||
BorderColour: &titleBarLight,
|
||
},
|
||
DarkModeActive: &application.WindowTheme{
|
||
TitleBarColour: &titleBarDark,
|
||
BorderColour: &titleBarDark,
|
||
},
|
||
},
|
||
},
|
||
})
|
||
|
||
app.SetMainWindow(window)
|
||
|
||
// production+devtools 模式下 OpenInspectorOnStartup 不生效(需 debugMode=true)
|
||
// 手动延迟调用 OpenDevTools 弹出 Inspector
|
||
// TODO: 替换为 OnDomReady 回调,当前 alpha.80 可能未稳定支持
|
||
go func() {
|
||
time.Sleep(2 * time.Second)
|
||
window.OpenDevTools()
|
||
}()
|
||
|
||
if err := wailsApp.Run(); err != nil {
|
||
println("Error:", err.Error())
|
||
}
|
||
}
|