Options
Options de l'applicationâ
La structure Options.App
contient la configuration de l'application. Il est passé à la méthode wails.Run()
:
import (
"github.com/wailsapp/wails/v2/pkg/options"
"github.com/wailsapp/wails/v2/pkg/options/assetserver"
"github.com/wailsapp/wails/v2/pkg/options/linux"
"github.com/wailsapp/wails/v2/pkg/options/mac"
"github.com/wailsapp/wails/v2/pkg/options/windows"
)
func main() {
err := wails.Run(&options.App{
Title: "Menus Demo",
Width: 800,
Height: 600,
DisableResize: false,
Fullscreen: false,
WindowStartState: options.Maximised,
Frameless: true,
MinWidth: 400,
MinHeight: 400,
MaxWidth: 1280,
MaxHeight: 1024,
StartHidden: false,
HideWindowOnClose: false,
BackgroundColour: &options.RGBA{R: 0, G: 0, B: 0, A: 255},
AlwaysOnTop: false,
AssetServer: &assetserver.Options{
Assets: assets,
Handler: assetsHandler,
Middleware: assetsMidldeware,
},
Menu: app.applicationMenu(),
Logger: nil,
LogLevel: logger.DEBUG,
LogLevelProduction: logger.ERROR,
OnStartup: app.startup,
OnDomReady: app.domready,
OnShutdown: app.shutdown,
OnBeforeClose: app.beforeClose,
CSSDragProperty: "--wails-draggable",
CSSDragValue: "drag",
EnableDefaultContextMenu: false,
EnableFraudulentWebsiteDetection: false,
Bind: []interface{}{
app,
},
EnumBind: []interface{}{
AllWeekdays,
},
ErrorFormatter: func(err error) any { return err.Error() },
SingleInstanceLock: &options.SingleInstanceLock{
UniqueId: "c9c8fd93-6758-4144-87d1-34bdb0a8bd60",
OnSecondInstanceLaunch: app.onSecondInstanceLaunch,
},
DragAndDrop: &options.DragAndDrop{
EnableFileDrop: false,
DisableWebViewDrop: false,
CSSDropProperty: "--wails-drop-target",
CSSDropValue: "drop",
},
Windows: &windows.Options{
WebviewIsTransparent: false,
WindowIsTranslucent: false,
BackdropType: windows.Mica,
DisablePinchZoom: false,
DisableWindowIcon: false,
DisableFramelessWindowDecorations: false,
WebviewUserDataPath: "",
WebviewBrowserPath: "",
Theme: windows.SystemDefault,
CustomTheme: &windows.ThemeSettings{
DarkModeTitleBar: windows.RGB(20, 20, 20),
DarkModeTitleText: windows.RGB(200, 200, 200),
DarkModeBorder: windows.RGB(20, 0, 20),
LightModeTitleBar: windows.RGB(200, 200, 200),
LightModeTitleText: windows.RGB(20, 20, 20),
LightModeBorder: windows.RGB(200, 200, 200),
},
// ZoomFactor is the zoom factor for the WebView2. Il s'agit de l'option correspondant au zoom avant ou arriÚre défini par l'utilisateur.
ZoomFactor: float64,
// IsZoomControlEnabled enables the zoom factor to be changed by the user.
IsZoomControlEnabled: bool,
// User messages that can be customised
Messages: *windows.Messages
// OnSuspend is called when Windows enters low power mode
OnSuspend: func()
// OnResume is called when Windows resumes from low power mode
OnResume: func(),
// Disable GPU hardware acceleration for the webview
WebviewGpuDisabled: false,
},
Mac: &mac.Options{
TitleBar: &mac.TitleBar{
TitlebarAppearsTransparent: true,
HideTitle: false,
HideTitleBar: false,
FullSizeContent: false,
UseToolbar: false,
HideToolbarSeparator: true,
OnFileOpen: app.onFileOpen,
OnUrlOpen: app.onUrlOpen,
},
Appearance: mac.NSAppearanceNameDarkAqua,
WebviewIsTransparent: true,
WindowIsTranslucent: false,
About: &mac.AboutInfo{
Title: "My Application",
Message: "© 2021 Me",
Icon: icon,
},
},
Linux: &linux.Options{
Icon: icon,
WindowIsTranslucent: false,
WebviewGpuPolicy: linux.WebviewGpuPolicyAlways,
ProgramName: "wails"
},
Debug: options.Debug{
OpenInspectorOnStartup: false,
},
})
if err != nil {
log.Fatal(err)
}
}
Titleâ
Le texte affichĂ© dans la barre de titre de la fenĂȘtre.
Nom : Title
Type : string
Widthâ
La largeur initiale de la fenĂȘtre.
Nom: Width
Type: int
DĂ©faut: 1024.
Heightâ
La hauteur initiale de la fenĂȘtre.
Nom: Height
Type: int
DĂ©faut: 768
DisableResizeâ
Par dĂ©faut, la fenĂȘtre principale est redimensionnable. Mettre ceci Ă true
le conservera une taille fixe.
Nom: DisableResize
Type: bool
Fullscreenâ
ObsolĂšte: Veuillez utiliser WindowStartState.
WindowStartStateâ
DĂ©finit comment la fenĂȘtre devrait se prĂ©senter au dĂ©marrage.
Valeur | Win | Mac | Lin |
---|---|---|---|
Fullscreen | â | â | â |
Maximised | â | â | â |
Minimised | â | â | â |
Nom: WindowStartState
Type: options.WindowStartState
Framelessâ
Quand réglé sur true
, la fenĂȘtre n'aura pas de bordure ou de barre de titre. Voir aussi les fenĂȘtres sans cadre sous Windows.
Nom: Frameless
Type: bool
MinWidthâ
DĂ©finit la largeur minimale de la fenĂȘtre. Si la valeur donnĂ©e dans Width
est infĂ©rieure Ă cette valeur, la fenĂȘtre sera dĂ©finie Ă MinWidth
par défaut.
Nom: MinWidth
Type: int
MinHeightâ
DĂ©finit la hauteur minimale de la fenĂȘtre. Si la valeur donnĂ©e dans Height
est infĂ©rieure Ă cette valeur, la fenĂȘtre sera dĂ©finie Ă MinHeight
par défaut.
Nom: MinHeight
Type: int
MaxWidthâ
DĂ©finit la largeur maximale de la fenĂȘtre. Si la valeur donnĂ©e dans Width
est supĂ©rieure Ă cette valeur, la fenĂȘtre sera dĂ©finie Ă MaxWidth
par défaut.
Nom: MaxWidth
Type: int
MaxHeightâ
DĂ©finit la hauteur maximale de la fenĂȘtre. Si la valeur donnĂ©e en Height
est supĂ©rieure Ă cette valeur, la fenĂȘtre sera dĂ©finie Ă MaxHeight
par défaut.
Nom: MaxHeight
Type: int
StartHiddenâ
Lorsque réglé sur true
, l'application sera masquée jusqu'à ce que WindowShow soit appelé.
Nom: StartHidden
Type: bool
HideWindowOnCloseâ
Par dĂ©faut, la fermeture de la fenĂȘtre fermera l'application. DĂ©finir ceci Ă true
signifie que
la fenĂȘtre sera cachĂ©e Ă la place.
Nom: HideWindowOnClose
Type: bool
BackgroundColourâ
Cette valeur est la couleur de fond par dĂ©faut de la fenĂȘtre. Exemple: options.NewRGBA(255,0,0,128) - Rouge Ă 50% de transparence
Nom: BackgroundColour
Type: *options.RGBA
DĂ©faut: white
AlwaysOnTopâ
Indique que la fenĂȘtre doit rester au-dessus des autres fenĂȘtres lors de la perte de focus.
Nom: AlwaysOnTop
Type: bool
Assetsâ
ObsolÚte: Veuillez utiliser des actifs sur les options AssetServer spécifiques.
AssetsHandlerâ
ObsolÚte : Veuillez utiliser AssetsHandler sur Options spécifiques à AssetServer.
AssetServerâ
Ceci définit les options spécifiques à AssetServer. Il permet de personnaliser l'AssetServer avec des actifs statiques, servant les assets dynamiquement avec un http.Handler
ou brancher dans la chaĂźne de requĂȘtes avec un assetserver.Middleware
.
Toutes les fonctionnalités d'une http.Request
ne sont pas actuellement prises en charge, veuillez consulter la matrice de fonctionnalité suivante :
Fonctionalité | Win | Mac | Lin |
---|---|---|---|
GET | â | â | â |
POST | â | â | â 1 |
PUT | â | â | â 1 |
PATCH | â | â | â 1 |
DELETE | â | â | â 1 |
Request Headers | â | â | â 1 |
Request Body | â | â | â 2 |
Request Body Streaming | â | â | â 2 |
Response StatusCodes | â | â | â 1 |
Response Headers | â | â | â 1 |
Response Body | â | â | â |
Response Body Streaming | â | â | â |
WebSockets | â | â | â |
HTTP Redirects 30x | â | â | â |
Nom: AssetServer
Type: *assetserver.Options
Assetsâ
Les ressources statiques du frontend Ă ĂȘtre utilisĂ©es par l'application.
Une requĂȘte GET est d'abord tentĂ©e d'ĂȘtre servie Ă partir de ce fs.FS
. Si le fs.FS
retourne os. rrNotExist
pour ce fichier, le traitement des requĂȘtes va revenir au Handler et essaie de rĂ©pondre Ă la requĂȘte GET.
Si la valeur est nulle, toutes les requĂȘtes GET seront envoyĂ©es Ă Handler.
Nom: Assets
Type: fs.FS
Handlerâ
Le gestionnaire d'assets est un http.Handler
gĂ©nĂ©rique pour la gestion de secours des assets qui ne peuvent pas ĂȘtre trouvĂ©s.
Le gestionnaire sera appelĂ© pour chaque requĂȘte GET qui ne peut pas ĂȘtre servie Ă partir de Assets, en raison de os.ErrNotExist
. De plus, toutes les requĂȘtes non GET seront toujours servies par ce gestionnaire. Si non dĂ©fini, le rĂ©sultat est le suivant dans les cas oĂč le Gestionnaire aurait Ă©tĂ© appelĂ© :
- RequĂȘte GET :
http.StatusNotFound
- Autre requĂȘte :
http.StatusMethodNotAllowed
This does not work with vite v5.0.0+ and wails v2 due to changes in vite. Changes are planned in v3 to support similar functionality under vite v5.0.0+. If you need this feature, stay with vite v4.0.0+. See issue 3240 for details
REMARQUE : Lorsqu'il est utilisé en combinaison avec un serveur de développement Frontend, il peut y avoir des limitations, par exemple. Vite affiche l'index.html sur chaque chemin qui ne contient pas d'extension de fichier.
Nom: AssetsHandler
Type: http.Handler
Middlewareâ
Middleware est un Middleware HTTP qui permet de se connecter Ă la chaĂźne de requĂȘtes AssetServer. Il permet de sauter dynamiquement le gestionnaire de requĂȘte par dĂ©faut, par exemple implĂ©menter un routage spĂ©cialisĂ©, etc. Le Middleware est appelĂ© pour construire un nouveau http.Handler
utilisé par l'AssetSever et reçoit également le gestionnaire par défaut utilisé par le serveur AssetServer comme argument.
Si elle n'est pas dĂ©finie, la chaĂźne de requĂȘte AssetServer par dĂ©faut est exĂ©cutĂ©e.
Nom: Middleware
Type: assetserver.Middleware
Menuâ
Le menu à utiliser par l'application. Plus de détails sur les menus dans la Référence des Menu.
Sur Mac, si aucun menu n'est spécifié, un menu par défaut sera créé.
Nom: Menu
Type: *menu.Menu
Loggerâ
Le logger à utiliser par l'application. Plus de détails sur la connexion dans la Référence du logger.
Nom: Logger
Type: logger.Logger
Défaut: Logs envoyé à Stdout
LogLevelâ
Le niveau de log par défaut. Plus de détails sur la connexion dans la Référence du logger.
Nom: LogLevel
Type: logger.LogLevel
DĂ©faut: Info
en mode dev, Error
en mode production
LogLevelProductionâ
Le niveau de log par défaut pour les compilations de production. Plus de détails sur la connexion dans la Référence du logger.
Nom: LogLevelProduction
Type: logger.LogLevel
DĂ©faut: Error
OnStartupâ
Ce callback est appelé aprÚs la création du frontend, mais avant que index.html
n'ait été chargé. Il lui donne le contexte de l'application.
Nom: OnStartup
Type: func(ctx context.Context)
OnDomReadyâ
Ce callback est appelé aprÚs que le frontend ait chargé index.html
et ses ressources. Il lui donne le contexte de l'application.
Nom: OnDomReady
Type: func(ctx context.Context)
OnShutdownâ
Ce calllback est appelé aprÚs que le frontend ait été détruit, juste avant la fin de l'application. Il lui donne le contexte de l'application.
Nom: OnShutdown
Type: func(ctx context.Context)
OnBeforeCloseâ
Si ce callback est dĂ©fini, il sera appelĂ© lorsque l'application est sur le point de quitter, soit en cliquant sur la fenĂȘtre fermez le bouton ou en appelant runtime.Quit
. Retourner "true" dans cette méthode entraßnera la poursuite de l'application, "false" continuera à éteindre comme d'habitude. C'est un bon exemple pour confirmer avec l'utilisateur si il souhaite quitter le programme.
Exemple:
func (b *App) beforeClose(ctx context.Context) (prevent bool) {
dialog, err := runtime.MessageDialog(ctx, runtime.MessageDialogOptions{
Type: runtime.QuestionDialog,
Title: "Quit?",
Message: "Are you sure you want to quit?",
})
if err != nil {
return false
}
return dialog != "Yes"
}
Nom: OnBeforeClose
Type: func(ctx context.Context) bool
CSSDragPropertyâ
Indique la propriĂ©tĂ© CSS Ă utiliser pour identifier quels Ă©lĂ©ments peuvent ĂȘtre utilisĂ©s pour faire glisser la fenĂȘtre. Par dĂ©faut : --wails-draggable
.
Nom: CSSDragProperty
Type: string
CSSDragValueâ
Indique quelle valeur le style CSSDragProperty
doit avoir pour faire glisser la fenĂȘtre. Par dĂ©faut: drag
.
Nom: CSSDragValue
Type: string
EnableDefaultContextMenuâ
EnableDefaultContextMenu active le menu contextuel par défaut du navigateur en production.
Par défaut, le menu contextuel par défaut du navigateur n'est disponible qu'en développement et dans un -debug
ou build avec l'inspecteur de devtools. En utilisant cette option, vous pouvez activer le menu contextuel par défaut en production
, alors que l'inspecteur devtools ne sera pas disponible Ă moins que l'option -devtools
ne soit utilisée.
Lorsque cette option est activĂ©e, par dĂ©faut, le menu contextuel ne sera affichĂ© que pour du texte (oĂč Couper/Copier/Coller est nĂ©cessaire), pour remplacer ce comportement, vous pouvez utiliser la propriĂ©tĂ© CSS --default-contextmenu
sur n'importe quel élément HTML (y compris le corps ``) avec les valeurs suivantes :
Style CSS | Comportement |
---|---|
--default-contextmenu: auto; | (défaut) n'affichera le menu contextuel par défaut que si : contentEditable est vrai OU le texte a été sélectionné OU l'élément est entrée ou la zone de texte |
--default-contextmenu: show; | affichera toujours le menu de contexte par défaut |
--default-contextmenu: hide; | masquera toujours le menu contextuel par défaut |
Cette rÚgle est héritée comme n'importe quelle rÚgle CSS normale, donc l'imbrication fonctionne comme prévu.
Cette fonctionnalité de filtrage n'est activée qu'en production, donc en développement et en construction de débogage, le menu contextuel complet est toujours disponible partout.
Cette fonctionnalitĂ© de filtrage n'est PAS une mesure de sĂ©curitĂ©, le dĂ©veloppeur devrait s'attendre Ă ce que le menu contextuel complet puisse ĂȘtre divulguĂ© Ă tout moment qui pourrait contenir des commandes comme (TĂ©lĂ©charger l'image, Recharger, Enregistrer la page web), si c'est une prĂ©occupation, le dĂ©veloppeur DEVRAIT NE PAS activer le menu contextuel par dĂ©faut.
Nom: EnableDefaultContextMenu
Type: bool
EnableFraudulentWebsiteDetectionâ
EnableFraudulentWebWebDetection permet de rechercher des contenus frauduleux, tels que des programmes malveillants ou des tentatives d'hameçonnage. Ces services peuvent envoyer des informations à partir de votre application, telles que les URL vers lesquelles vous avez navigué et éventuellement d'autres contenus vers le cloud, des services d'Apple et de Microsoft.
Nom: EnableFraudulentWebsiteDetection
Type: bool
ZoomFactorâ
Nom: ZoomFactor
Type: float64
Ceci définit le facteur de zoom pour WebView2. Il s'agit de l'option correspondant au zoom avant ou arriÚre défini par l'utilisateur.
IsZoomControlEnabledâ
Nom : IsZoomControlEnabled
Type : bool
Cela permet de modifier le facteur de zoom par l'utilisateur. Veuillez noter que le facteur de zoom peut ĂȘtre dĂ©fini dans les options tandis que ne permet pas Ă l'utilisateur de le modifier Ă l'exĂ©cution (f.e. pour une application vitrine ou similaire).
Bindâ
La liste des structs Go dĂ©finissant des mĂ©thodes qui doivent ĂȘtre liĂ©es au frontend.
Nom: Bind
Type: []interface{}
EnumBindâ
A slice of Enum arrays that need to be bound to the frontend.
Name: EnumBind
Type: []interface{}
ErrorFormatterâ
Une fonction qui détermine comment les erreurs sont formatées lorsqu'elles sont retournées par un appel de méthode JS-to-Go. La valeur retournée sera sous format JSON.
Nom: ErrorFormatter
Type: func (error) any
SingleInstanceLockâ
Enables single instance locking. This means that only one instance of your application can be running at a time.
Name: SingleInstanceLock
Type: *options.SingleInstanceLock
UniqueIdâ
This id is used to generate the mutex name on Windows and macOS and the dbus name on Linux. Use a UUID to ensure that the id is unique.
Name: UniqueId
Type: string
OnSecondInstanceLaunchâ
Callback that is called when a second instance of your app is launched.
Name: OnSecondInstanceLaunch
Type: func(secondInstanceData SecondInstanceData)
Drag and Dropâ
Defines the behavior of drag and drop events on the window.
Name: DragAndDrop
Type: options.DragAndDrop
EnableFileDropâ
EnableFileDrop enables wails' drag and drop functionality that returns the dropped in files' absolute paths.
When it is set to true
the runtime methods can be used.
Or you can listen for the wails:file-drop
event with runtime EventsOn method both on the Javascript and GO side to implement any functionality you would like.
The event returns the coordinates of the drop and a file path slice.
Name: EnableFileDrop
Type: bool
Default: false
DisableWebViewDropâ
Disables the webview's drag and drop functionality.
It can be used to prevent accidental opening of dragged in files in the webview, when there is no need for drag and drop.
Name: DisableWebViewDrop
Type: bool
Default: false
CSSDropPropertyâ
CSS property to test for drag and drop target elements.
Name: CSSDropProperty
Type: string
Default: --wails-drop-target
CSSDropValueâ
The CSS Value that the CSSDropProperty must have to be a valid drop target. Default "drop"
Name: CSSDropValue
Type: string
Default: drop
Windowsâ
Ceci définit les options spécifiques à Windows.
Nom: Windows
Type: *windows.Options
WebviewIsTransparentâ
Mettre ceci Ă true
rendra l'arriĂšre-plan du webview transparent quand une valeur alpha de 0
est utilisée. Cela signifie que si vous utilisez rgba(0,0,0,0)
pour la couleur d'arriĂšre-plan
dans votre CSS, la fenĂȘtre d'hĂŽte sera affichĂ©e. Souvent combinĂ© avec WindowIsTranslucent pour faire des applications d'apparence de givre.
Nom : WebviewIsTransparent
Type : bool
WindowIsTranslucentâ
DĂ©finir ceci Ă true
rendra l'arriĂšre-plan de la fenĂȘtre translucide. Souvent combinĂ© avec WebviewIsTransparent.
Pour les versions de Windows 11 avant la version 22621, cela utilisera la mĂ©thode BlurBehind pour la transluciditĂ©, qui peut ĂȘtre lente. Pour les versions de Windows 11 aprĂšs la version 22621, cela activera les nouveaux types de transparence qui sont beaucoup plus rapides. Par dĂ©faut, le type de transparence utilisĂ© sera dĂ©terminĂ© par Windows. Pour configurer ceci, utilisez l'option BackdropType.
Nom: WindowIsTranslucent
Type: bool
BackdropTypeâ
Nécessite Windows 11 version 22621 ou supérieure.
DĂ©finit le type de transparence de la fenĂȘtre. Ceci n'est applicable que si WindowIsTranslucent est dĂ©fini Ă true
.
Nom: BackdropType
Type windows.BackdropType
La valeur peut ĂȘtre l'une des valeurs suivantes :
Valeur | Description |
---|---|
Auto | Laisser Windows décider quel arriÚre-plan utiliser |
None | Ne pas utiliser de transparence |
Acrylic | Utilisez l'effet Acrylique |
Mica | Utiliser l'effet Mica |
Tabbed | Utiliser Tabbed. C'est un arriĂšre-plan qui est similaire Ă Mica. |
DisablePinchZoomâ
Setting this to true
will disable pinch zoom gestures.
Name: DisablePinchZoom
Type: bool
DisableWindowIconâ
DĂ©finir ceci Ă true
supprimera l'icÎne dans le coin supérieur gauche de la barre de titre.
Nom: DisableWindowIcon
Type: bool
DisableFramelessWindowDecorationsâ
DĂ©finir ceci Ă true
supprimera les dĂ©corations de fenĂȘtre en mode sans cadre. Cela signifie qu'il n'y aura pas de « Aero Shadow» et aucun « Coins arrondis» ne sera affichĂ© pour la fenĂȘtre. Veuillez noter que les "coins arrondis" ne sont pris en charge que sur Windows 11.
Nom: DisableFramelessWindowDecorations
Type: bool
WebviewUserDataPathâ
Ceci dĂ©finit le chemin oĂč WebView2 stocke les donnĂ©es de l'utilisateur. Si vide, %APPDATA%\[BinaryName.exe]
sera utilisé.
Nom: WebviewUserDataPath
Type: string
WebviewBrowserPathâ
Ceci définit le chemin vers un répertoire avec les fichiers exécutables et bibliothÚques WebView2. Si l'option est vide, l'instance de webview2 installé dans le systÚme sera utilisé.
Informations importantes sur la version corrigée :
- Comment récupérer et extraire l'exécutable
- ProblÚmes connus pour la version corrigée
- Le chemin de la version corrigée du runtime WebView2 ne doit pas contenir \Edge\Application.
Nom: WebviewBrowserPath
Type: string
Themeâ
Version minimale de Windows : Windows 10 2004/20H1
Ceci définit le thÚme que l'application doit utiliser :
Valeur | Description |
---|---|
SystemDefault | Default. Le thÚme sera basé sur la valeur par défaut du systÚme. Si l'utilisateur change de thÚme, l'application se mettra à jour pour utiliser le nouveau paramÚtre |
Dark | L'application utilisera uniquement un thĂšme sombre |
Light | L'application utilisera uniquement un thĂšme clair |
Nom: Theme
Type: windows.Theme
CustomThemeâ
Version minimale de Windows : Windows 10/11 2009/21H2 Build 22000
Vous permet de spĂ©cifier des couleurs personnalisĂ©es pour la barre de titre, le texte de titre et la bordure pour le mode clair et foncĂ©. ainsi que lorsque la fenĂȘtre est active ou inactive.
Nom: CustomTheme
Type: windows.CustomTheme
Type CustomThemeâ
Le struct CustomTheme utilise int32
pour spécifier les valeurs de couleurs. Celles-ci sont au format standard(!) Windows soit : 0x00BBGGAA
. Une fonction d'aide est fournie pour effectuer les conversions de RGB dans ce format : windows.RGB(r,g,b uint8)
.
NOTE : Toute valeur non fournie sera par défaut noire.
type ThemeSettings struct {
DarkModeTitleBar int32
DarkModeTitleBarInactive int32
DarkModeTitleText int32
DarkModeTitleTextInactive int32
DarkModeBorder int32
DarkModeBorderInactive int32
LightModeTitleBar int32
LightModeTitleBarInactive int32
LightModeTitleText int32
LightModeTitleTextInactive int32
LightModeBorder int32
LightModeBorderInactive int32
}
Exemple:
CustomTheme: &windows.ThemeSettings{
// Theme to use when window is active
DarkModeTitleBar: windows.RGB(255, 0, 0), // Red
DarkModeTitleText: windows.RGB(0, 255, 0), // Green
DarkModeBorder: windows.RGB(0, 0, 255), // Blue
LightModeTitleBar: windows.RGB(200, 200, 200),
LightModeTitleText: windows.RGB(20, 20, 20),
LightModeBorder: windows.RGB(200, 200, 200),
// Theme to use when window is inactive
DarkModeTitleBarInactive: windows.RGB(128, 0, 0),
DarkModeTitleTextInactive: windows.RGB(0, 128, 0),
DarkModeBorderInactive: windows.RGB(0, 0, 128),
LightModeTitleBarInactive: windows.RGB(100, 100, 100),
LightModeTitleTextInactive: windows.RGB(10, 10, 10),
LightModeBorderInactive: windows.RGB(100, 100, 100),
},
Messagesâ
Un struct de chaßnes utilisées par l'installateur webview2 si un runtime webview2 valide n'est pas trouvé.
Nom: Messages
Type: *windows.Messages
Personnalisez ceci pour n'importe quelle langue que vous choisissez de supporter.
ResizeDebounceMSâ
ResizeDebounceMS est le temps entre deux rĂ©ajustements du contenu de la fenĂȘtre lors du redimensionnement de la fenĂȘtre. La valeur par dĂ©faut (0) effectuera des rĂ©ajustements aussi vite qu'il le peut.
Nom: ResizeDebounceMS
Type: uint16
OnSuspendâ
Si défini, cette fonction sera appelée lorsque Windows passera en mode économie d'énergie
Nom: OnSuspend
Type: func()
OnResumeâ
Si défini, cette fonction sera appelée lorsque Windows sortira du mode économie d'énergie
Nom: OnResume
Type: func()
WebviewGpuIsDisabledâ
DĂ©finir ceci Ă true
désactivera l'accélération matérielle GPU pour la webview.
Nom: WebviewGpuIsDisabled
Type: bool
EnableSwipeGesturesâ
DĂ©finir Ă true
activera les gestes de balayage pour la webview.
Nom: EnableSwipeGestures
Type: bool
Macâ
Ceci définit les options spécifiques à Mac.
Nom: Mac
Type: *mac.Options
TitleBarâ
La structure TitleBar permet de configurer l'apparence de la barre de titre.
Nom: TitleBar
Type: *mac.TitleBar
Struct de la Titlebarâ
La barre de titre de l'application peut ĂȘtre personnalisĂ©e en utilisant les options suivantes de TitleBar :
type TitleBar struct {
TitlebarAppearsTransparent bool
HideTitle bool
HideTitleBar bool
FullSizeContent bool
UseToolbar bool
HideToolbarSeparator bool
}
Nom | Description |
---|---|
TitlebarAppearsTransparent | Rend la barre de titre transparente. Cela a pour effet de masquer la barre de titre et le contenu remplit la fenĂȘtre. Apple Docs |
HideTitle | Masque le titre de la fenĂȘtre. Apple Docs |
HideTitleBar | Supprime NSWindowStyleMaskTitled du style |
FullSizeContent | Fait que la webview remplisse toute la fenĂȘtre. Apple Docs |
UseToolbar | Ajoute une barre d'outils par dĂ©faut Ă la fenĂȘtre. Apple Docs |
HideToolbarSeparator | Supprime la ligne située sous la barre d'outils. Apple Docs |
Des paramÚtres préconfigurés sont disponibles :
Configuration | Exemple |
---|---|
mac.TitleBarDefault() | |
mac.TitleBarHidden() | |
mac.TitleBarHiddenInset() |
Exemple:
Mac: &mac.Options{
TitleBar: mac.TitleBarHiddenInset(),
}
Cliquez sur ici si vous voulez de l'inspiration sur la personnalisation de la barre de titre.
Appearanceâ
L'apparence est utilisée pour définir le style de votre application en accord avec les noms NSAppearance d'Apple.
Nom: Appearance
Type: mac.AppearanceType
Type d'Appearanceâ
Vous pouvez spécifier l'apparence de l'application.
Valeur | Description |
---|---|
DefaultAppearance | DefaultAppararance utilise la valeur systÚme par défaut |
NSAppearanceNameAqua | Utilise l'apparence thĂšme clair standard |
NSAppearanceNameDarkAqua | Utilise l'apparence thĂšme sombre standard |
NSAppearanceNameVibrantLight | Utilise une apparence avec une lumiĂšre vibrante |
NSAppearanceNameAccessibilityHighContrastAqua | Utilise l'apparence thÚme clair standard avec un constrate élevé |
NSAppearanceNameAccessibilityHighContrastDarkAqua | Utilise l'apparence thÚme sombre standard avec un contraste élevé |
NSAppearanceNameAccessibilityHighContrastVibrantLight | Utilise l'apparence lumiÚre vibrante avec un constrate élevé |
NSAppearanceNameAccessibilityHighContrastVibrantDark | Utilise l'apparence du thÚme sombre vibrant avec un constrate élevé |
Exemple:
Mac: &mac.Options{
Appearance: mac.NSAppearanceNameDarkAqua,
}
WebviewIsTransparentâ
Mettre ceci Ă true
rendra l'arriĂšre-plan du webview transparent quand une valeur alpha de 0
est utilisée. Cela signifie que si vous utilisez rgba(0,0,0,0)
pour la couleur d'arriĂšre-plan
dans votre CSS, la fenĂȘtre d'hĂŽte sera affichĂ©e. Souvent combinĂ© avec WindowIsTranslucent pour faire des applications d'apparence de givre.
Nom : WebviewIsTransparent
Type : bool
WindowIsTranslucentâ
DĂ©finir ceci Ă true
rendra l'arriĂšre-plan de la fenĂȘtre translucide. Souvent combinĂ© avec WebviewIsTransparent pour donner un aspect givrĂ© Ă la fenĂȘtre.
Nom: WindowIsTranslucent
Type: bool
OnFileOpenâ
Callback that is called when a file is opened with the application.
Name: OnFileOpen
Type: func(filePath string)
OnUrlOpenâ
Callback that is called when a URL is opened with the application.
Name: OnUrlOpen
Type: func(filePath string)
Preferencesâ
Preferences fournit la possibilité de configurer les préférences de la Webview.
Nom: Preferences
Type: *mac.Preferences
Preferencesâ
Vous pouvez spécifier les préférences de la webview.
type Preferences struct {
TabFocusesLinks u.Bool
TextInteractionEnabled u.Bool
FullscreenEnabled u.Bool
}
Nom | Description |
---|---|
TabFocusesLinks | Un booléen qui indique si la touche de tabulation change le focus vers liens et les boutons des formulaires. Apple Docs |
TextInteractionEnabled | Un booléen qui indique s'il faut permettre aux gens de sélectionner ou d'interagir autrement avec le texte. Apple Docs |
FullscreenEnabled | Un boolĂ©en qui indique si le contenu peut ĂȘtre affichĂ© en plein Ă©cran. Apple Docs |
Exemple:
Mac: &mac.Options{
Preferences: &mac.Preferences{
TabFocusesLinks: mac.Enabled,
TextInteractionEnabled: mac.Disabled,
FullscreenEnabled: mac.Enabled,
}
}
Aboutâ
Cette configuration vous permet de définir le titre, le message et l'icÎne pour l'élément de menu "à propos" dans le menu de l'application créé par le rÎle "AppMenu".
Nom: About
Type: *mac.AboutInfo
Struct de Aboutâ
type AboutInfo struct {
Title string
Message string
Icon []byte
}
Si ces paramĂštres sont fournis, un lien de menu "Ă propos" apparaĂźtra dans le menu de l'application (lors de l'utilisation du rĂŽle AppMenu
). Exemple:
//go:embed build/appicon.png
var icon []byte
func main() {
err := wails.Run(&options.App{
...
Mac: &mac.Options{
About: &mac.AboutInfo{
Title: "My Application",
Message: "© 2021 Me",
Icon: icon,
},
},
})
L'élément de menu "à propos" apparaßtra dans le menu de l'application:
Lorsqu'il est cliqué, cela ouvrira la boßte de message "à propos" :
Linuxâ
Ceci définit les options spécifiques à Linux.
Nom: Linux
Type: *linux.Options
Iconâ
DĂ©finit l'icĂŽne reprĂ©sentant la fenĂȘtre. Cette icĂŽne est utilisĂ©e lorsque la fenĂȘtre est rĂ©duite (aussi appelĂ©e iconified).
Nom: Icon
Type: []byte
Certains gestionnaires de fenĂȘtres ou environnements de bureau peuvent Ă©galement le placer dans le cadre de la fenĂȘtre, ou l'afficher dans d'autres contextes. Sur d'autres, l'icĂŽne n'est pas du tout utilisĂ©e, donc son utilisation peut varier.
NOTE : Gnome sur Wayland n'affiche pas cette icĂŽne. Pour y avoir une icĂŽne d'application, un fichier .desktop
doit ĂȘtre utilisĂ©. Sous KDE, cela devrait fonctionner.
LâicĂŽne doit ĂȘtre fournie dans la taille quâelle a Ă©tĂ© dessinĂ©e naturellement, câest-Ă -dire ne pas redimensionner lâimage avant de la passer. La mise Ă l'Ă©chelle est reportĂ©e Ă la derniĂšre minute, lorsque la taille finale dĂ©sirĂ©e est connue, pour permettre une meilleure qualitĂ©.
WindowIsTranslucentâ
DĂ©finir ceci Ă true
rendra l'arriĂšre-plan de la fenĂȘtre translucide. Certains gestionnaires de fenĂȘtres peuvent l'ignorer, ou rĂ©sulter en une fenĂȘtre noire.
Nom: WindowIsTranslucent
Type: bool
WebviewGpuPolicyâ
Cette option est utilisée pour déterminer la politique d'accélération matérielle effectuée par webview.
Nom: WebviewGpuPolicy
Type: options.WebviewGpuPolicy
DĂ©faut: WebviewGpuPolicyAlways
Type de WebviewGpuPolicyâ
Valeur | Description |
---|---|
WebviewGpuPolicyAlways | L'accélération matérielle est toujours activée |
WebviewGpuPolicyOnDemand | L'accélération matérielle est activée/désactivée à la demande du contenu web |
WebviewGpuPolicyNever | L'accélération matérielle est toujours désactivée |
ProgramNameâ
Cette option est utilisĂ©e pour dĂ©finir le nom du programme pour le gestionnaire de fenĂȘtres via la fonction g_set_prgname(). Ce nom ne doit pas ĂȘtre localisĂ©, voir la documentation.
Quand un fichier .desktop est crĂ©Ă©, cette valeur aide avec le groupement de fenĂȘtres et les icĂŽnes de bureau quand la propriĂ©tĂ© Nom
est différente du nom de fichier de l'exécutable.
Nom: ProgramName
Type: string
Debugâ
Ceci définit les options spécifiques au débogage qui s'appliquent aux compilations de débogage.
Nom: Debug
Type: options.Debug
OpenInspectorOnStartupâ
DĂ©finir cette option Ă true
ouvrira l'inspecteur Web au démarrage de l'application.
Nom: OpenInspectorOnStartup
Type: bool
- Cela nĂ©cessite la prise en charge de WebKit2GTK 2.36+ et votre application doit ĂȘtre construite avec la balise de compilation
webkit2_36
pour activer le support de cette fonctionnalitĂ©. Cela augmente aussi la version minnimale de WebKit2GTK Ă 2.36 pour votre application.â© - Cela nĂ©cessite la prise en charge de WebKit2GTK 2.40+ et votre application doit ĂȘtre construite avec la balise de compilation
webkit2_40
pour activer le support de cette fonctionnalitĂ©. Cela augmente aussi la version minnimale de WebKit2GTK Ă 2.40 pour votre application. [ â©](#fnref2:2){.footnote-backref} â©{.footnote-backref}â©