mirror of
https://github.com/taigrr/wails.git
synced 2026-04-02 05:08:54 -07:00
[windows-x] Support webview2 runtime checker on startup
This commit is contained in:
@@ -40,6 +40,7 @@ func (a *App) Run() error {
|
||||
|
||||
// CreateApp creates the app!
|
||||
func CreateApp(appoptions *options.App) (*App, error) {
|
||||
var err error
|
||||
|
||||
ctx := context.Background()
|
||||
|
||||
@@ -50,12 +51,18 @@ func CreateApp(appoptions *options.App) (*App, error) {
|
||||
myLogger := logger.New(appoptions.Logger)
|
||||
myLogger.SetLogLevel(appoptions.LogLevel)
|
||||
|
||||
// Preflight Checks
|
||||
err = PreflightChecks(appoptions, myLogger)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Create the menu manager
|
||||
menuManager := menumanager.NewManager()
|
||||
|
||||
// Process the application menu
|
||||
appMenu := options.GetApplicationMenu(appoptions)
|
||||
err := menuManager.SetApplicationMenu(appMenu)
|
||||
err = menuManager.SetApplicationMenu(appMenu)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
12
v2/internal/appng/app_default.go
Normal file
12
v2/internal/appng/app_default.go
Normal file
@@ -0,0 +1,12 @@
|
||||
// +build !windows
|
||||
|
||||
package appng
|
||||
|
||||
import (
|
||||
"github.com/wailsapp/wails/v2/internal/logger"
|
||||
"github.com/wailsapp/wails/v2/pkg/options"
|
||||
)
|
||||
|
||||
func PreflightChecks(_ *options.App, _ *logger.Logger) error {
|
||||
return nil
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package appng
|
||||
|
||||
import (
|
||||
"github.com/wailsapp/wails/v2/internal/binding"
|
||||
"github.com/wailsapp/wails/v2/internal/ffenestri/windows/wv2runtime"
|
||||
"github.com/wailsapp/wails/v2/internal/frontend"
|
||||
"github.com/wailsapp/wails/v2/internal/frontend/windows"
|
||||
"github.com/wailsapp/wails/v2/internal/logger"
|
||||
@@ -11,3 +12,21 @@ import (
|
||||
func NewFrontend(appoptions *options.App, myLogger *logger.Logger, bindings *binding.Bindings, dispatcher frontend.Dispatcher) frontend.Frontend {
|
||||
return windows.NewFrontend(appoptions, myLogger, bindings, dispatcher)
|
||||
}
|
||||
|
||||
func PreflightChecks(options *options.App, logger *logger.Logger) error {
|
||||
|
||||
_ = options
|
||||
|
||||
// Process the webview2 runtime situation. We can pass a strategy in via the `webview2` flag for `wails build`.
|
||||
// This will determine how wv2runtime.Process will handle a lack of valid runtime.
|
||||
installedVersion, err := wv2runtime.Process()
|
||||
if installedVersion != nil {
|
||||
logger.Debug("WebView2 Runtime installed: Name: '%s' Version:'%s' Location:'%s'. Minimum version required: %s.",
|
||||
installedVersion.Name, installedVersion.Version, installedVersion.Location, wv2runtime.MinimumRuntimeVersion)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package wv2runtime
|
||||
|
||||
import (
|
||||
"github.com/jchv/go-webview2/webviewloader"
|
||||
"github.com/leaanthony/webview2runtime"
|
||||
)
|
||||
|
||||
@@ -19,11 +20,11 @@ func Process() (*webview2runtime.Info, error) {
|
||||
installedVersion := webview2runtime.GetInstalledVersion()
|
||||
if installedVersion != nil {
|
||||
installStatus = installed
|
||||
updateRequired, err := installedVersion.IsOlderThan(MinimumRuntimeVersion)
|
||||
compareResult, err := webviewloader.CompareBrowserVersions(installedVersion.Version, MinimumRuntimeVersion)
|
||||
if err != nil {
|
||||
_ = webview2runtime.Error(err.Error(), "Error")
|
||||
return installedVersion, err
|
||||
return nil, err
|
||||
}
|
||||
updateRequired := compareResult == -1
|
||||
// Installed and does not require updating
|
||||
if !updateRequired {
|
||||
return installedVersion, nil
|
||||
|
||||
Reference in New Issue
Block a user