选项
应用程序选项
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
定义窗口在启动时应如何显示自身。
值 | Win | Mac | Lin |
---|---|---|---|
全屏 | ✅ | ✅ | ✅ |
最大化 | ✅ | ✅ | ✅ |
最小化 | ✅ | ❌ | ✅ |
名称: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
的功能都得到当前支持,请参阅以下功能矩阵
功能 | Win | Mac | Lin |
---|---|---|---|
GET | ✅ | ✅ | ✅ |
POST | ✅ | ✅ | ✅ 1 |
PUT | ✅ | ✅ | ✅ 1 |
PATCH | ✅ | ✅ | ✅ 1 |
DELETE | ✅ | ✅ | ✅ 1 |
请求头 | ✅ | ✅ | ✅ 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 将正常继续关闭。这对于确认用户是否希望退出程序很有用。
示例
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 类型
您可以指定应用程序的 外观。
值 | 描述 |
---|---|
DefaultAppearance | DefaultAppearance 使用默认系统值 |
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