diff --git a/v2/internal/frontend/assetserver/assetserver_desktop.go b/v2/internal/frontend/assetserver/assetserver_desktop.go index 23cb7254d..36d6c77d2 100644 --- a/v2/internal/frontend/assetserver/assetserver_desktop.go +++ b/v2/internal/frontend/assetserver/assetserver_desktop.go @@ -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.RuntimeJS) + buffer.Write(runtime.RuntimeDesktopJS) result.runtimeJS = buffer.Bytes() err := result.init(assets) return result, err diff --git a/v2/internal/frontend/desktop/windows/frontend.go b/v2/internal/frontend/desktop/windows/frontend.go index 087ee7303..0101fa1bd 100644 --- a/v2/internal/frontend/desktop/windows/frontend.go +++ b/v2/internal/frontend/desktop/windows/frontend.go @@ -47,6 +47,8 @@ func (f *Frontend) WindowReload() { func (f *Frontend) Run(ctx context.Context) error { + f.ctx = context.WithValue(ctx, "frontend", f) + mainWindow := NewWindow(nil, f.frontendOptions) f.mainWindow = mainWindow @@ -77,8 +79,9 @@ func (f *Frontend) Run(ctx context.Context) error { // TODO: Move this into a callback from frontend go func() { - ctx := context.WithValue(ctx, "frontend", f) - f.frontendOptions.Startup(ctx) + if f.frontendOptions.OnStartup != nil { + f.frontendOptions.OnStartup(f.ctx) + } }() mainWindow.Run() @@ -172,6 +175,7 @@ func (f *Frontend) setupChromium() { chromium := edge.NewChromium() chromium.MessageCallback = f.processMessage chromium.WebResourceRequestedCallback = f.processRequest + chromium.NavigationCompletedCallback = f.navigationCompleted chromium.Embed(f.mainWindow.Handle()) chromium.Resize() settings, err := chromium.GetSettings() @@ -296,6 +300,12 @@ func (f *Frontend) ExecJS(js string) { }) } +func (f *Frontend) navigationCompleted(sender *edge.ICoreWebView2, args *edge.ICoreWebView2NavigationCompletedEventArgs) { + if f.frontendOptions.OnDomReady != nil { + f.frontendOptions.OnDomReady(f.ctx) + } +} + func NewFrontend(ctx context.Context, appoptions *options.App, myLogger *logger.Logger, appBindings *binding.Bindings, dispatcher frontend.Dispatcher) *Frontend { result := &Frontend{ diff --git a/v2/internal/frontend/devserver/devserver.go b/v2/internal/frontend/devserver/devserver.go index 7ffe69e68..b5eafcf47 100644 --- a/v2/internal/frontend/devserver/devserver.go +++ b/v2/internal/frontend/devserver/devserver.go @@ -1,3 +1,5 @@ +//go:build dev + package devserver import (