5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-03 07:10:40 +08:00

[windows-x] Startup/Shutdown -> OnStartup/OnShutdown

This commit is contained in:
Lea Anthony 2021-08-26 20:38:03 +10:00
parent e00d65d468
commit 58dc917fb7
16 changed files with 59 additions and 59 deletions

View File

@ -25,7 +25,7 @@ func (b *App) startup(ctx context.Context) {
}
// shutdown is called at application termination
func (b *App) shutdown() {
func (b *App) shutdown(ctx context.Context) {
// Perform your teardown here
}

View File

@ -7,7 +7,6 @@ import (
"github.com/wailsapp/wails/v2"
"github.com/wailsapp/wails/v2/pkg/logger"
"github.com/wailsapp/wails/v2/pkg/menu"
"github.com/wailsapp/wails/v2/pkg/options"
"github.com/wailsapp/wails/v2/pkg/options/mac"
)
@ -30,7 +29,6 @@ func main() {
Frameless: false,
StartHidden: false,
HideWindowOnClose: false,
DevTools: false,
RGBA: 0x000000FF,
Windows: &windows.Options{
WebviewIsTransparent: true,
@ -41,11 +39,10 @@ func main() {
WebviewIsTransparent: true,
WindowBackgroundIsTranslucent: true,
TitleBar: mac.TitleBarHiddenInset(),
Menu: menu.DefaultMacMenu(),
},
LogLevel: logger.DEBUG,
Startup: app.startup,
Shutdown: app.shutdown,
LogLevel: logger.DEBUG,
OnStartup: app.startup,
OnShutdown: app.shutdown,
Bind: []interface{}{
app,
},

View File

@ -1,14 +1,13 @@
package main
import (
"context"
"fmt"
"github.com/wailsapp/wails/v2"
)
// App application struct
type App struct {
runtime *wails.Runtime
ctx context.Context
}
// NewApp creates a new App application struct
@ -17,13 +16,13 @@ func NewApp() *App {
}
// startup is called at application startup
func (b *App) startup(runtime *wails.Runtime) {
func (b *App) startup(ctx context.Context) {
// Perform your setup here
b.runtime = runtime
b.ctx = ctx
}
// shutdown is called at application termination
func (b *App) shutdown() {
func (b *App) shutdown(ctx context.Context) {
// Perform your teardown here
}

View File

@ -7,7 +7,6 @@ import (
"github.com/wailsapp/wails/v2"
"github.com/wailsapp/wails/v2/pkg/logger"
"github.com/wailsapp/wails/v2/pkg/menu"
"github.com/wailsapp/wails/v2/pkg/options"
"github.com/wailsapp/wails/v2/pkg/options/mac"
)
@ -30,7 +29,6 @@ func main() {
Frameless: false,
StartHidden: false,
HideWindowOnClose: false,
DevTools: false,
RGBA: 0x000000FF,
Windows: &windows.Options{
WebviewIsTransparent: true,
@ -41,11 +39,10 @@ func main() {
WebviewIsTransparent: true,
WindowBackgroundIsTranslucent: true,
TitleBar: mac.TitleBarHiddenInset(),
Menu: menu.DefaultMacMenu(),
},
LogLevel: logger.DEBUG,
Startup: app.startup,
Shutdown: app.shutdown,
LogLevel: logger.DEBUG,
OnStartup: app.startup,
OnShutdown: app.shutdown,
Bind: []interface{}{
app,
},

View File

@ -22,7 +22,7 @@ func (b *App) startup(ctx context.Context) {
}
// shutdown is called at application termination
func (b *App) shutdown() {
func (b *App) shutdown(ctx context.Context) {
// Perform your teardown here
}

View File

@ -7,7 +7,6 @@ import (
"github.com/wailsapp/wails/v2"
"github.com/wailsapp/wails/v2/pkg/logger"
"github.com/wailsapp/wails/v2/pkg/menu"
"github.com/wailsapp/wails/v2/pkg/options"
"github.com/wailsapp/wails/v2/pkg/options/mac"
)
@ -30,7 +29,6 @@ func main() {
Frameless: false,
StartHidden: false,
HideWindowOnClose: false,
DevTools: false,
RGBA: 0x000000FF,
Windows: &windows.Options{
WebviewIsTransparent: true,
@ -41,11 +39,10 @@ func main() {
WebviewIsTransparent: true,
WindowBackgroundIsTranslucent: true,
TitleBar: mac.TitleBarHiddenInset(),
Menu: menu.DefaultMacMenu(),
},
LogLevel: logger.DEBUG,
Startup: app.startup,
Shutdown: app.shutdown,
LogLevel: logger.DEBUG,
OnStartup: app.startup,
OnShutdown: app.shutdown,
Bind: []interface{}{
app,
},

View File

@ -1,3 +1,4 @@
//go:build desktop && !server
// +build desktop,!server
package app
@ -45,7 +46,7 @@ type App struct {
// This is our binding DB
bindings *binding.Bindings
// Startup/Shutdown
// OnStartup/OnShutdown
startupCallback func(ctx context.Context)
shutdownCallback func()
}
@ -82,7 +83,7 @@ func CreateApp(appoptions *options.App) (*App, error) {
window := ffenestri.NewApplicationWithConfig(appoptions, myLogger, menuManager)
// Create binding exemptions - Ugly hack. There must be a better way
bindingExemptions := []interface{}{appoptions.Startup, appoptions.Shutdown}
bindingExemptions := []interface{}{appoptions.OnStartup, appoptions.OnShutdown, appoptions.OnDomReady}
result := &App{
appType: "desktop",
@ -91,8 +92,8 @@ func CreateApp(appoptions *options.App) (*App, error) {
logger: myLogger,
bindings: binding.NewBindings(myLogger, appoptions.Bind, bindingExemptions),
menuManager: menuManager,
startupCallback: appoptions.Startup,
shutdownCallback: appoptions.Shutdown,
startupCallback: appoptions.OnStartup,
shutdownCallback: appoptions.OnShutdown,
}
result.options = appoptions
@ -246,7 +247,7 @@ func (a *App) Run() error {
return err
}
// Shutdown callback
// OnShutdown callback
if a.shutdownCallback != nil {
a.shutdownCallback()
}

View File

@ -1,9 +1,11 @@
//go:build dev
// +build dev
package app
import (
"context"
"github.com/wailsapp/wails/runtime"
"sync"
"github.com/wailsapp/wails/v2/internal/bridge"
@ -49,7 +51,7 @@ type App struct {
loglevelStore *runtime.Store
appconfigStore *runtime.Store
// Startup/Shutdown
// OnStartup/OnShutdown
startupCallback func(*runtime.Runtime)
shutdownCallback func()
@ -85,15 +87,15 @@ func CreateApp(appoptions *options.App) (*App, error) {
}
// Create binding exemptions - Ugly hack. There must be a better way
bindingExemptions := []interface{}{appoptions.Startup, appoptions.Shutdown}
bindingExemptions := []interface{}{appoptions.OnStartup, appoptions.OnShutdown, appoptions.OnDomReady}
result := &App{
appType: "dev",
bindings: binding.NewBindings(myLogger, appoptions.Bind, bindingExemptions),
logger: myLogger,
servicebus: servicebus.New(myLogger),
startupCallback: appoptions.Startup,
shutdownCallback: appoptions.Shutdown,
startupCallback: appoptions.OnStartup,
shutdownCallback: appoptions.OnShutdown,
bridge: bridge.NewBridge(myLogger),
menuManager: menuManager,
}
@ -235,7 +237,7 @@ func (a *App) Run() error {
return err
}
// Shutdown callback
// OnShutdown callback
if a.shutdownCallback != nil {
a.shutdownCallback()
}

View File

@ -1,3 +1,4 @@
//go:build server && !desktop
// +build server,!desktop
package app
@ -37,7 +38,7 @@ type App struct {
debug bool
// Startup/Shutdown
// OnStartup/OnShutdown
startupCallback func(ctx context.Context)
shutdownCallback func()
}
@ -58,8 +59,8 @@ func CreateApp(appoptions *options.App) (*App, error) {
logger: myLogger,
servicebus: servicebus.New(myLogger),
webserver: webserver.NewWebServer(myLogger),
startupCallback: appoptions.Startup,
shutdownCallback: appoptions.Shutdown,
startupCallback: appoptions.OnStartup,
shutdownCallback: appoptions.OnShutdown,
}
// Initialise app

View File

@ -31,16 +31,16 @@ type App struct {
// Indicates if the app is in debug mode
debug bool
// Startup/Shutdown
// OnStartup/OnShutdown
startupCallback func(ctx context.Context)
shutdownCallback func()
shutdownCallback func(ctx context.Context)
ctx context.Context
}
func (a *App) Run() error {
err := a.frontend.Run(a.ctx)
if a.shutdownCallback != nil {
a.shutdownCallback()
a.shutdownCallback(a.ctx)
}
return err
}
@ -95,7 +95,7 @@ func CreateApp(appoptions *options.App) (*App, error) {
}
// Create binding exemptions - Ugly hack. There must be a better way
bindingExemptions := []interface{}{appoptions.Startup, appoptions.Shutdown}
bindingExemptions := []interface{}{appoptions.OnStartup, appoptions.OnShutdown, appoptions.OnDomReady}
appBindings := binding.NewBindings(myLogger, appoptions.Bind, bindingExemptions)
eventHandler := runtime.NewEvents(myLogger)
ctx = context.WithValue(ctx, "events", eventHandler)
@ -112,8 +112,8 @@ func CreateApp(appoptions *options.App) (*App, error) {
frontend: appFrontend,
logger: myLogger,
menuManager: menuManager,
startupCallback: appoptions.Startup,
shutdownCallback: appoptions.Shutdown,
startupCallback: appoptions.OnStartup,
shutdownCallback: appoptions.OnShutdown,
debug: true,
}

View File

@ -7,6 +7,7 @@ import (
"context"
"github.com/wailsapp/wails/v2/internal/binding"
"github.com/wailsapp/wails/v2/internal/frontend"
"github.com/wailsapp/wails/v2/internal/frontend/desktop"
"github.com/wailsapp/wails/v2/internal/frontend/dispatcher"
"github.com/wailsapp/wails/v2/internal/frontend/runtime"
"github.com/wailsapp/wails/v2/internal/logger"
@ -27,16 +28,16 @@ type App struct {
// Indicates if the app is in debug mode
debug bool
// Startup/Shutdown
// OnStartup/OnShutdown
startupCallback func(ctx context.Context)
shutdownCallback func()
shutdownCallback func(ctx context.Context)
ctx context.Context
}
func (a *App) Run() error {
err := a.frontend.Run(a.ctx)
if a.shutdownCallback != nil {
a.shutdownCallback()
a.shutdownCallback(a.ctx)
}
return err
}
@ -72,22 +73,22 @@ func CreateApp(appoptions *options.App) (*App, error) {
}
// Create binding exemptions - Ugly hack. There must be a better way
bindingExemptions := []interface{}{appoptions.Startup, appoptions.Shutdown}
bindingExemptions := []interface{}{appoptions.OnStartup, appoptions.OnShutdown, appoptions.OnDomReady}
appBindings := binding.NewBindings(myLogger, appoptions.Bind, bindingExemptions)
eventHandler := runtime.NewEvents(myLogger)
ctx = context.WithValue(ctx, "events", eventHandler)
messageDispatcher := dispatcher.NewDispatcher(myLogger, appBindings, eventHandler)
appFrontend := NewFrontend(appoptions, myLogger, appBindings, messageDispatcher, menuManager)
eventHandler.SetFrontend(appFrontend)
appFrontend := desktop.NewFrontend(ctx, appoptions, myLogger, appBindings, messageDispatcher)
eventHandler.AddFrontend(appFrontend)
result := &App{
ctx: ctx,
frontend: appFrontend,
logger: myLogger,
menuManager: menuManager,
startupCallback: appoptions.Startup,
shutdownCallback: appoptions.Shutdown,
startupCallback: appoptions.OnStartup,
shutdownCallback: appoptions.OnShutdown,
debug: false,
}

View File

@ -42,7 +42,7 @@ func NewDesktopAssetServer(ctx context.Context, assets embed.FS, bindingsJSON st
var buffer bytes.Buffer
buffer.WriteString(`window.wailsbindings='` + bindingsJSON + `';` + "\n")
buffer.Write(runtime.RuntimeDesktopJS)
buffer.Write(runtime.RuntimeJS)
result.runtimeJS = buffer.Bytes()
err := result.init(assets)
return result, err

View File

@ -84,7 +84,7 @@ func (e *Event) Start() error {
// Spin off a go routine
go func() {
defer e.logger.Trace("Shutdown")
defer e.logger.Trace("OnShutdown")
for {
select {
case <-e.ctx.Done():

View File

@ -27,7 +27,7 @@ type Runtime struct {
//ctx
ctx context.Context
// Startup Hook
// OnStartup Hook
startupOnce sync.Once
// Service bus
@ -66,7 +66,7 @@ func (r *Runtime) Start() error {
// Spin off a go routine
go func() {
defer r.logger.Trace("Shutdown")
defer r.logger.Trace("OnShutdown")
for {
select {
case hooksMessage := <-r.hooksChannel:

View File

@ -222,6 +222,10 @@ func (b *BaseBuilder) CompileProject(options *Options) error {
tags.Add(options.WebView2Strategy)
}
if options.Mode == Production {
tags.Add("production")
}
tags.Deduplicate()
// Add the output type build tag

View File

@ -32,8 +32,9 @@ type App struct {
Menu *menu.Menu
Logger logger.Logger `json:"-"`
LogLevel logger.LogLevel
Startup func(ctx context.Context) `json:"-"`
Shutdown func() `json:"-"`
OnStartup func(ctx context.Context) `json:"-"`
OnDomReady func(ctx context.Context) `json:"-"`
OnShutdown func(ctx context.Context) `json:"-"`
Bind []interface{}
//ContextMenus []*menu.ContextMenu