github.com/AlpineAIO/wails/v2@v2.0.0-beta.32.0.20240505041856-1047a8fa5fef/internal/wv2installer/embed.go (about)

     1  //go:build windows && wv2runtime.embed
     2  // +build windows,wv2runtime.embed
     3  
     4  package wv2installer
     5  
     6  import (
     7  	"fmt"
     8  	"github.com/AlpineAIO/wails/v2/internal/webview2runtime"
     9  	"github.com/AlpineAIO/wails/v2/pkg/options/windows"
    10  )
    11  
    12  func doInstallationStrategy(installStatus installationStatus, messages *windows.Messages) error {
    13  	message := messages.InstallationRequired
    14  	if installStatus == needsUpdating {
    15  		message = messages.UpdateRequired
    16  	}
    17  	message += messages.PressOKToInstall
    18  	confirmed, err := webview2runtime.Confirm(message, messages.MissingRequirements)
    19  	if err != nil {
    20  		return err
    21  	}
    22  	if !confirmed {
    23  		return fmt.Errorf(messages.Webview2NotInstalled)
    24  	}
    25  	installedCorrectly, err := webview2runtime.InstallUsingEmbeddedBootstrapper()
    26  	if err != nil {
    27  		_ = webview2runtime.Error(err.Error(), messages.Error)
    28  		return err
    29  	}
    30  	if !installedCorrectly {
    31  		err = webview2runtime.Error(messages.FailedToInstall, messages.Error)
    32  		return err
    33  	}
    34  	return nil
    35  }