跳至主要内容
版本:v2.9.0

选项

应用程序选项

Options.App 结构体包含应用程序配置。它传递给 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. This is the option matching the Edge user activated zoom in or out.
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)
}
}

标题

窗口标题栏中显示的文本。

名称:标题
类型:string

宽度

窗口的初始宽度。

名称:宽度
类型:int
默认:1024。

高度

窗口的初始高度。

名称:高度
类型:int
默认:768

禁用调整大小

默认情况下,主窗口是可以调整大小的。将其设置为 true 将使其保持固定大小。

名称:禁用调整大小
类型:bool

全屏

已弃用:请使用 WindowStartState

WindowStartState

定义窗口在启动时应如何显示自身。

WinMacLin
全屏
最大化
最小化

名称:WindowStartState
类型:options.WindowStartState

无边框

当设置为 true 时,窗口将没有边框或标题栏。另请参见 无边框窗口

名称:无边框
类型:bool

最小宽度

这设置了窗口的最小宽度。如果在 Width 中给定的值小于此值,窗口将默认设置为 MinWidth

名称:最小宽度
类型:int

最小高度

这设置了窗口的最小高度。如果在 Height 中给定的值小于此值,窗口将默认设置为 MinHeight

名称:最小高度
类型:int

最大宽度

这设置了窗口的最大宽度。如果在 Width 中给定的值大于此值,窗口将默认设置为 MaxWidth

名称:最大宽度
类型:int

最大高度

这设置了窗口的最大高度。如果在 Height 中给定的值大于此值,窗口将默认设置为 MaxHeight

名称:最大高度
类型:int

隐藏启动

当设置为 true 时,应用程序将隐藏,直到调用 WindowShow

名称:隐藏启动
类型:bool

关闭时隐藏窗口

默认情况下,关闭窗口将关闭应用程序。将其设置为 true 意味着关闭窗口将

隐藏窗口。

名称:关闭时隐藏窗口
类型:bool

背景颜色

此值是窗口的默认背景颜色。例如:options.NewRGBA(255,0,0,128) - 红色,透明度为 50%

名称:背景颜色
类型:*options.RGBA
默认:白色

始终置顶

指示窗口在失去焦点时应始终保持在其他窗口之上。

名称:始终置顶
类型:bool

资产

已弃用:请使用 AssetServer 特定选项 中的 Assets。

资产处理程序

已弃用:请使用 AssetServer 特定选项 中的 AssetsHandler。

AssetServer

这定义了 AssetServer 特定的选项。它允许使用静态资产自定义 AssetServer,使用 http.Handler 动态提供资产或使用 assetserver.Middleware 挂钩到请求链。

并非所有 http.Request 的功能都得到当前支持,请参阅以下功能矩阵

功能WinMacLin
GET
POST1
PUT1
PATCH1
DELETE1
请求头1
请求体2
请求体流2
响应状态码1
响应头1
响应体
响应体流
WebSocket
HTTP 重定向 30x

名称:AssetServer
类型:*assetserver.Options

资产

应用程序要使用的静态前端资产。

首先尝试从此 fs.FS 中提供 GET 请求。如果 fs.FS 为该文件返回 os.ErrNotExist,请求处理将回退到 Handler 并尝试从中提供 GET 请求。

如果设置为 nil,所有 GET 请求都将转发到 Handler

名称:资产
类型:fs.FS

处理程序

资产处理程序是用于回退处理无法找到的资产的通用 http.Handler

由于 os.ErrNotExist,该处理程序将针对无法从 Assets 中提供的每个 GET 请求被调用。此外,所有非 GET 请求都将始终从该 Handler 中提供。如果未定义,则在 Handler 会被调用的情况下结果如下:

  • GET 请求:http.StatusNotFound
  • 其他请求:http.StatusMethodNotAllowed
信息

由于 vite 中的更改,这与 vite v5.0.0+ 和 wails v2 不兼容。计划在 v3 中支持类似的功能,以支持 vite v5.0.0+。如果您需要此功能,请使用 vite v4.0.0+。有关详细信息,请参阅 issue 3240

注意:当与前端 DevServer 结合使用时,可能存在限制,例如 Vite 在不包含文件扩展名的每个路径上提供 index.html。

名称:AssetsHandler
类型:http.Handler

中间件

Middleware 是一个 HTTP 中间件,它允许挂钩到 AssetServer 请求链。它允许动态跳过默认请求处理程序,例如实现专门的路由等。Middleware 被调用以构建 AssetSever 使用的新 http.Handler,它还接收 AssetServer 使用的默认处理程序作为参数。

如果未定义,将执行默认的 AssetServer 请求链。

名称:中间件
类型:assetserver.Middleware

应用程序要使用的菜单。有关菜单的更多详细信息,请参阅 菜单参考

注意

在 Mac 上,如果未指定菜单,将创建一个默认菜单。

名称:菜单
类型:*menu.Menu

记录器

应用程序要使用的记录器。有关记录的更多详细信息,请参阅 日志参考

名称:记录器
类型:logger.Logger
默认:将日志记录到标准输出

日志级别

默认日志级别。有关记录的更多详细信息,请参阅 日志参考

名称:日志级别
类型:logger.LogLevel
默认:开发模式下为 Info,生产模式下为 Error

生产日志级别

生产构建的默认日志级别。有关记录的更多详细信息,请参阅 日志参考

名称:生产日志级别
类型:logger.LogLevel
默认:Error

启动时

此回调在创建前端后但在加载 index.html 之前调用。它提供应用程序上下文。

名称:启动时
类型:func(ctx context.Context)

DOM 就绪时

此回调在前端加载 index.html 及其资源后调用。它提供应用程序上下文。

名称:DOM 就绪时
类型:func(ctx context.Context)

关闭时

此回调在销毁前端后但在应用程序终止之前调用。它提供应用程序上下文。

名称:关闭时
类型:func(ctx context.Context)

关闭前

如果设置了此回调函数,它将在应用程序即将退出时被调用,无论是通过点击窗口关闭按钮还是调用 `runtime.Quit`。返回 true 将导致应用程序继续运行,false 将正常继续关闭。这对于确认用户是否希望退出程序很有用。

示例

windowsapp.go
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"
}

名称: OnBeforeClose
类型: func(ctx context.Context) bool

CSSDragProperty

指示用于标识哪些元素可以用于拖动窗口的 CSS 属性。默认值: --wails-draggable

名称: CSSDragProperty
类型:string

CSSDragValue

指示 CSSDragProperty 样式应具有什么值才能拖动窗口。默认值: drag

名称: CSSDragValue
类型:string

EnableDefaultContextMenu

EnableDefaultContextMenu 在生产环境中启用浏览器的默认上下文菜单。

默认情况下,浏览器的默认上下文菜单仅在开发环境和使用 `-debug` 构建 以及开发者工具检查器时可用,使用此选项可以 在 `生产` 环境中启用默认上下文菜单,而开发者工具检查器将不可用, 除非使用了 `-devtools` 构建标志。

启用此选项后,默认情况下,上下文菜单仅在文本上下文中显示(需要剪切/复制/粘贴),要覆盖此行为,可以在任何 HTML 元素(包括 `body`)上使用 CSS 属性 `--default-contextmenu`, 具有以下值

CSS 样式行为
--default-contextmenu: auto;(默认) 仅在以下情况下显示默认上下文菜单
contentEditable 为 true 或已选择文本或元素为输入或文本区域
--default-contextmenu: show;将始终显示默认上下文菜单
--default-contextmenu: hide;将始终隐藏默认上下文菜单

此规则像任何正常的 CSS 规则一样被继承,因此嵌套按预期工作。

注意

此过滤功能仅在生产环境中启用,因此在开发环境和调试构建中,完整的上下文菜单始终在任何地方可用。

危险

此过滤功能不是安全措施,开发人员应该预期完整的上下文菜单可能随时泄露,其中可能包含诸如(下载图像、重新加载、保存网页)之类的命令,如果这是一个问题, 开发人员不应该启用默认上下文菜单。

名称: EnableDefaultContextMenu
类型:bool

EnableFraudulentWebsiteDetection

EnableFraudulentWebsiteDetection 启用欺诈内容(例如恶意软件或网络钓鱼企图)的扫描服务。这些服务可能会从您的应用程序发送信息,例如导航到的 URL 以及可能的其他内容,到 Apple 和 Microsoft 的云服务。

名称: EnableFraudulentWebsiteDetection
类型:bool

ZoomFactor

名称: ZoomFactor
类型: float64

这定义了 WebView2 的缩放因子。这是与 Edge 用户激活的放大或缩小相匹配的选项。

IsZoomControlEnabled

名称: IsZoomControlEnabled
类型:bool

这允许用户更改缩放因子。请注意,缩放因子可以在禁用用户在运行时更改它(例如,对于售货亭应用程序或类似应用程序)的选项中设置。

Bind

定义需要绑定到前端的方法的结构实例切片。

名称: Bind
类型: []interface{}

EnumBind

需要绑定到前端的枚举数组切片。

名称: EnumBind
类型: []interface{}

ErrorFormatter

一个函数,用于确定在 JS 到 Go 方法调用返回错误时如何格式化错误。返回值将被序列化为 JSON。

名称: ErrorFormatter
类型: func (error) any

SingleInstanceLock

启用单实例锁定。这意味着一次只能运行一个应用程序实例。

名称: SingleInstanceLock
类型: *options.SingleInstanceLock

UniqueId

此 ID 用于在 Windows 和 macOS 上生成互斥体名称,以及在 Linux 上生成 dbus 名称。使用 UUID 以确保 ID 是唯一的。

名称: UniqueId
类型:string

OnSecondInstanceLaunch

当启动应用程序的第二个实例时,将调用此回调函数。

名称: OnSecondInstanceLaunch
类型: func(secondInstanceData SecondInstanceData)

拖放

定义窗口上拖放事件的行为。

名称: DragAndDrop
类型: options.DragAndDrop

EnableFileDrop

EnableFileDrop 启用 wails 的拖放功能,该功能返回已放入文件的绝对路径。

当它设置为 `true` 时,可以使用 runtime 方法
或者,可以使用 runtime EventsOn 方法 在 Javascript 和 GO 方面监听 `wails:file-drop` 事件,以实现您想要的任何功能。

该事件返回下降的坐标和文件路径切片。

名称: EnableFileDrop
类型:bool
默认值: false

DisableWebViewDrop

禁用 webview 的拖放功能。

它可以用来防止在不需要拖放的情况下,意外地在 webview 中打开拖入的文件。

名称: DisableWebViewDrop
类型:bool
默认值: false

CSSDropProperty

用于测试拖放目标元素的 CSS 属性。

名称: CSSDropProperty
类型:string
默认值: --wails-drop-target

CSSDropValue

CSSDropProperty 必须具有的 CSS 值才能成为有效的放置目标。默认值为 "drop"

名称: CSSDropValue
类型:string
默认值: drop

Windows

这定义了 Windows 特定选项

名称: Windows
类型: *windows.Options

WebviewIsTransparent

将此设置为 `true` 将使 webview 背景在使用 `0` 的 alpha 值时变为透明。这意味着,如果您在 CSS 中使用 `rgba(0,0,0,0)` 作为 `background-color`,则主机窗口将显示出来。通常与 WindowIsTranslucent 结合使用,以创建雾蒙蒙的应用程序。

名称: WebviewIsTransparent
类型:bool

WindowIsTranslucent

将此设置为 `true` 将使窗口背景半透明。通常与 WebviewIsTransparent 结合使用。

对于 Windows 11 版本(低于构建 22621),这将使用 BlurBehind 方法来实现半透明效果,这可能很慢。对于 Windows 11 版本(高于构建 22621),这将启用更新的半透明效果类型,这些类型要快得多。默认情况下,Windows 将决定使用哪种半透明效果类型。要配置此选项,请使用 BackdropType 选项。

名称: WindowIsTranslucent
类型:bool

BackdropType

注意

需要 Windows 11 版本 22621 或更高版本。

设置窗口的半透明效果类型。这仅在 WindowIsTranslucent 设置为 `true` 时适用。

名称: BackdropType
类型 windows.BackdropType

该值可以是以下之一

描述
Auto让 Windows 决定使用哪种背景
None不要使用半透明效果
Acrylic使用 Acrylic 效果
Mica使用 Mica 效果
Tabbed使用 Tabbed。这是一种类似于 Mica 的背景。

DisablePinchZoom

将此设置为 `true` 将禁用捏合缩放手势。

名称: DisablePinchZoom
类型:bool

DisableWindowIcon

将此设置为 `true` 将删除标题栏左上角的图标。

名称: DisableWindowIcon
类型:bool

DisableFramelessWindowDecorations

将此设置为 `true` 将删除 无边框 模式下的窗口装饰。这意味着不会显示窗口的“Aero 阴影”和“圆角”。请注意,“圆角”仅在 Windows 11 上受支持。

名称: DisableFramelessWindowDecorations
类型:bool

WebviewUserDataPath

这定义了 WebView2 存储用户数据的路径。如果为空,将使用 `%APPDATA%\[BinaryName.exe]`。

名称: WebviewUserDataPath
类型:string

WebviewBrowserPath

这定义了包含 WebView2 可执行文件和库的目录的路径。如果为空,将使用系统中安装的 webview2。

有关分发固定版本运行时的重要信息

名称: WebviewBrowserPath
类型:string

Theme

最低 Windows 版本:Windows 10 2004/20H1

这定义了应用程序应该使用的主题

描述
SystemDefault默认。主题将基于系统默认设置。如果用户更改了他们的主题,应用程序将更新以使用新设置
Dark应用程序将专门使用深色主题
Light应用程序将专门使用浅色主题

名称:Theme
类型:windows.Theme

CustomTheme

注意

最低 Windows 版本:Windows 10/11 2009/21H2 构建 22000

允许您为浅色和深色模式以及窗口处于活动状态或非活动状态时指定标题栏、标题文本和边框的自定义颜色。

名称:CustomTheme
类型:windows.CustomTheme

CustomTheme 类型

CustomTheme 结构使用int32来指定颜色值。这些使用标准的(!) Windows 格式:0x00BBGGAA。提供了一个辅助函数来将 RGB 转换为这种格式:windows.RGB(r,g,b uint8)

注意:任何未提供的价值都将默认为黑色。

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
}

示例

    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),
},

消息

一个字符串结构,如果找不到有效的 webview2 运行时,则由 webview2 安装程序使用。

名称:Messages
类型:*windows.Messages

针对您选择支持的任何语言自定义它。

ResizeDebounceMS

ResizeDebounceMS 是对调整窗口大小时的 webview2 重绘进行去抖动的时间量。默认值 (0) 将尽快执行重绘。

名称:ResizeDebounceMS
类型:uint16

OnSuspend

如果设置,则当 Windows 启动切换到低功耗模式(挂起/休眠)时,将调用此函数

名称:OnSuspend
类型:func()

OnResume

如果设置,则当 Windows 从低功耗模式(挂起/休眠)恢复时,将调用此函数

名称:OnResume
类型:func()

WebviewGpuIsDisabled

将此设置为true将为 webview 禁用 GPU 硬件加速。

名称:WebviewGpuIsDisabled
类型:bool

EnableSwipeGestures

将此设置为true将为 webview 启用滑动操作。

名称:EnableSwipeGestures
类型:bool

Mac

这定义了 Mac 特定的选项

名称:Mac
类型:*mac.Options

TitleBar

TitleBar 结构提供了配置标题栏的外观和感觉的能力。

名称:TitleBar
类型:*mac.TitleBar

Titlebar 结构

应用程序的标题栏可以使用 TitleBar 选项自定义

type TitleBar struct {
TitlebarAppearsTransparent bool
HideTitle bool
HideTitleBar bool
FullSizeContent bool
UseToolbar bool
HideToolbarSeparator bool
}
名称描述
TitlebarAppearsTransparent使标题栏透明。这将隐藏标题栏,内容将填充窗口。 Apple 文档
HideTitle隐藏窗口标题。 Apple 文档
HideTitleBar从样式掩码中删除 NSWindowStyleMaskTitled
FullSizeContent使 webview 填充整个窗口。 Apple 文档
UseToolbar在窗口中添加一个默认工具栏。 Apple 文档
HideToolbarSeparator删除工具栏下方的线条。 Apple 文档

预配置的标题栏设置可用

设置示例
mac.TitleBarDefault()
mac.TitleBarHidden()
mac.TitleBarHiddenInset()

示例

Mac: &mac.Options{
TitleBar: mac.TitleBarHiddenInset(),
}

点击 这里 获取一些关于自定义标题栏的灵感。

Appearance

Appearance 用于根据 Apple 的 NSAppearance 名称设置应用程序的样式。

名称:Appearance
类型:mac.AppearanceType

Appearance 类型

您可以指定应用程序的 外观

描述
DefaultAppearanceDefaultAppearance 使用默认系统值
NSAppearanceNameAqua标准浅色系统外观
NSAppearanceNameDarkAqua标准深色系统外观
NSAppearanceNameVibrantLight浅色鲜艳外观
NSAppearanceNameAccessibilityHighContrastAqua标准浅色系统外观的高对比度版本
NSAppearanceNameAccessibilityHighContrastDarkAqua标准深色系统外观的高对比度版本
NSAppearanceNameAccessibilityHighContrastVibrantLight浅色鲜艳外观的高对比度版本
NSAppearanceNameAccessibilityHighContrastVibrantDark深色鲜艳外观的高对比度版本

示例

Mac: &mac.Options{
Appearance: mac.NSAppearanceNameDarkAqua,
}

WebviewIsTransparent

将此设置为 `true` 将使 webview 背景在使用 `0` 的 alpha 值时变为透明。这意味着,如果您在 CSS 中使用 `rgba(0,0,0,0)` 作为 `background-color`,则主机窗口将显示出来。通常与 WindowIsTranslucent 结合使用,以创建雾蒙蒙的应用程序。

名称: WebviewIsTransparent
类型:bool

WindowIsTranslucent

将此设置为true将使窗口背景半透明。通常与 WebviewIsTransparent 结合使用以创建冰冻外观的应用程序。

名称: WindowIsTranslucent
类型:bool

OnFileOpen

当使用应用程序打开文件时调用的回调。

名称:OnFileOpen
类型:func(filePath string)

OnUrlOpen

当使用应用程序打开 URL 时调用的回调。

名称:OnUrlOpen
类型:func(filePath string)

Preferences

Preferences 结构提供了配置 Webview 首选项的能力。

名称:Preferences
类型:*mac.Preferences

Preferences 结构

您可以指定 webview 首选项。

type Preferences struct {
TabFocusesLinks u.Bool
TextInteractionEnabled u.Bool
FullscreenEnabled u.Bool
}
名称描述
TabFocusesLinks一个布尔值,指示是否按下 Tab 键会将焦点更改为链接和表单控件。 Apple 文档
TextInteractionEnabled一个布尔值,指示是否允许人们选择或以其他方式与文本交互。 Apple 文档
FullscreenEnabled一个布尔值,指示 web 视图是否可以全屏显示内容。 Apple 文档

示例

Mac: &mac.Options{
Preferences: &mac.Preferences{
TabFocusesLinks: mac.Enabled,
TextInteractionEnabled: mac.Disabled,
FullscreenEnabled: mac.Enabled,
}
}

About

此配置允许您为“AppMenu”角色创建的应用程序菜单中的“关于”菜单项设置标题、消息和图标。

名称:About
类型:*mac.AboutInfo

About 结构

type AboutInfo struct {
Title string
Message string
Icon []byte
}

如果提供这些设置,应用程序菜单中将出现一个“关于”菜单项(当使用AppMenu角色时)。鉴于此配置

//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,
},
},
})

“关于”菜单项将出现在应用程序菜单中


单击时,将打开一个关于消息框


Linux

这定义了 Linux 特定的选项

名称:Linux
类型:*linux.Options

Icon

设置代表窗口的图标。此图标在窗口最小化(也称为图标化)时使用。

名称:Icon
类型:[]byte

一些窗口管理器或桌面环境也可能将其放置在窗口框架中,或在其他上下文中显示它。在其他环境中,图标根本没有使用,因此您的体验可能会有所不同。

注意:至少 Wayland 上的 Gnome 不会显示此图标。要在那里有一个应用程序图标,必须使用.desktop文件。在 KDE 上,它应该可以工作。

图标应以其自然绘制的任何大小提供;也就是说,不要在传递它之前缩放图像。缩放会在最后一分钟推迟,当知道所需的最终大小时,以获得最佳质量。

WindowIsTranslucent

将此设置为true将使窗口背景半透明。一些窗口管理器可能会忽略它,或导致黑色窗口。

名称: WindowIsTranslucent
类型:bool

WebviewGpuPolicy

此选项用于确定 webview 的硬件加速策略。

名称:WebviewGpuPolicy
类型:options.WebviewGpuPolicy
默认值:WebviewGpuPolicyAlways

WebviewGpuPolicy 类型
描述
WebviewGpuPolicyAlways始终启用硬件加速
WebviewGpuPolicyOnDemand根据 web 内容的要求启用/禁用硬件加速
WebviewGpuPolicyNever始终禁用硬件加速

ProgramName

此选项用于通过 GTK 的 g_set_prgname() 为窗口管理器设置程序的名称。此名称不应本地化,参见文档

当创建 .desktop 文件时,当 .desktop 文件的Name属性与可执行文件的名称不同时,此值有助于窗口分组和桌面图标。

名称:ProgramName
类型:string

Debug

这定义了适用于调试构建的 Debug 特定的选项

名称:Debug
类型:options.Debug

OpenInspectorOnStartup

将此设置为 true 将在应用程序启动时打开 WebInspector。

名称:OpenInspectorOnStartup
类型:bool


  1. 这需要 WebKit2GTK 2.36+ 支持,并且您的应用程序需要使用构建标签 webkit2_36 构建以激活对该功能的支持。 这也使您的应用程序对 WebKit2GTK 的最低要求提升至 2.36。
  2. 这需要 WebKit2GTK 2.40+ 支持,并且您的应用程序需要使用构建标签 webkit2_40 构建以激活对该功能的支持。 这也使您的应用程序对 WebKit2GTK 的最低要求提升至 2.40。