mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-05-31 12:39:41 +08:00
79 lines
2.0 KiB
Go
79 lines
2.0 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"strings"
|
|
|
|
aiservice "GoNavi-Wails/internal/ai/service"
|
|
"GoNavi-Wails/internal/app"
|
|
"GoNavi-Wails/internal/logger"
|
|
|
|
"github.com/wailsapp/wails/v2"
|
|
"github.com/wailsapp/wails/v2/pkg/options"
|
|
"github.com/wailsapp/wails/v2/pkg/options/assetserver"
|
|
"github.com/wailsapp/wails/v2/pkg/options/mac"
|
|
"github.com/wailsapp/wails/v2/pkg/options/windows"
|
|
)
|
|
|
|
func main() {
|
|
// Create an instance of the app structure
|
|
application := app.NewApp()
|
|
aiService := aiservice.NewService()
|
|
lowMemoryMode := isLowMemoryMode()
|
|
backgroundColour := &options.RGBA{R: 0, G: 0, B: 0, A: 0}
|
|
windowsBackdrop := windows.Acrylic
|
|
if lowMemoryMode {
|
|
backgroundColour = &options.RGBA{R: 255, G: 255, B: 255, A: 255}
|
|
windowsBackdrop = windows.None
|
|
}
|
|
|
|
// Create application with options
|
|
err := wails.Run(&options.App{
|
|
Title: "GoNavi",
|
|
Width: 1024,
|
|
Height: 768,
|
|
MinWidth: 900,
|
|
MinHeight: 600,
|
|
Frameless: true,
|
|
AssetServer: &assetserver.Options{
|
|
Assets: assets,
|
|
},
|
|
BackgroundColour: backgroundColour,
|
|
OnStartup: func(ctx context.Context) {
|
|
app.InitializeLifecycle(application, ctx)
|
|
aiservice.InitializeLifecycle(aiService, ctx)
|
|
},
|
|
OnShutdown: application.Shutdown,
|
|
Bind: []interface{}{
|
|
application,
|
|
aiService,
|
|
},
|
|
Windows: &windows.Options{
|
|
WebviewIsTransparent: !lowMemoryMode,
|
|
WindowIsTranslucent: !lowMemoryMode,
|
|
BackdropType: windowsBackdrop,
|
|
DisableWindowIcon: false,
|
|
DisableFramelessWindowDecorations: false,
|
|
WebviewUserDataPath: resolveWindowsWebviewUserDataPath(),
|
|
},
|
|
Mac: &mac.Options{
|
|
WebviewIsTransparent: true,
|
|
WindowIsTranslucent: true,
|
|
},
|
|
})
|
|
|
|
if err != nil {
|
|
logger.Error(err, "应用启动失败")
|
|
}
|
|
}
|
|
|
|
func isLowMemoryMode() bool {
|
|
switch strings.ToLower(strings.TrimSpace(os.Getenv("GONAVI_LOW_MEMORY_MODE"))) {
|
|
case "1", "true", "yes", "on":
|
|
return true
|
|
default:
|
|
return false
|
|
}
|
|
}
|