Skip to content

应用配置

应用配置通过 application.Options 结构体设置,控制窗口外观、行为和平台特定选项。

基本用法

go
wvApp := wv.Init()
wvApp.SetOptions(application.Options{
    Caption:    "My App",
    DefaultURL: "app://custom/index.html",
    Width:      1200,
    Height:     800,
})

Options 完整字段

窗口基本属性

字段类型说明
Captionstring窗口标题
DefaultURLstring默认加载的 URL
Xint32窗口 X 坐标
Yint32窗口 Y 坐标
Widthint32窗口宽度
Heightint32窗口高度
MinWidthint32最小宽度(0 = 无限制)
MinHeightint32最小高度(0 = 无限制)
MaxWidthint32最大宽度(0 = 无限制)
MaxHeightint32最大高度(0 = 无限制)
DefaultWindowStatustypes.TWindowState默认窗口状态

功能开关

字段类型说明
DisableDevToolsbool禁用开发者工具
DisableContextMenubool禁用右键菜单
DisableWebkitAppRegionDClkbool禁用 Webkit AppRegion 双击
DisableResizebool禁用窗口调整大小
DisableMinimizebool禁用最小化按钮
DisableMaximizebool禁用最大化按钮
DisableSystemMenubool禁用系统菜单

外观

字段类型说明
Framelessbool无边框窗口
WindowTransparentbool窗口透明
WebviewTransparentboolWebView 背景透明
BackgroundColor*colors.TARGB背景颜色(使用 colors.NewARGB() 创建)

平台配置

字段类型说明
WindowsWindowsWindows 平台配置
MacOSMacOSmacOS 平台配置
LinuxLinuxLinux 平台配置

Windows 平台配置

go
Windows: application.Windows{
    Theme:           application.Dark,
    BackdropType:    application.BtAcrylic,
    WindowProtected: true,
}

Theme 主题

说明
SystemDefault跟随系统(默认)
Dark深色主题
Light浅色主题

BackdropType 背景材质

说明
BtAuto自动选择
BtNone无材质
BtMicaMica 材质(Win11)
BtAcrylic亚克力材质(Win10+)
BtTabbed标签页材质

ThemeSetting 主题颜色

go
Windows: application.Windows{
    ThemeSetting: &application.ThemeSetting{
        DarkTitleBar:           0x000000,
        DarkTitleBarInactive:   0x2B2B2B,
        DarkTitleText:          0xFFFFFF,
        DarkTitleTextInactive:  0x999999,
        DarkBorder:             0x333333,
        DarkBorderInactive:     0x222222,
        LightTitleBar:          0xFFFFFF,
        LightTitleBarInactive:  0xF0F0F0,
        LightTitleText:         0x000000,
        LightTitleTextInactive: 0x999999,
        LightBorder:            0xCCCCCC,
        LightBorderInactive:    0xE0E0E0,
    },
}

ThemeSetting 字段(均为 int32 颜色值):

字段说明
DarkTitleBar深色主题标题栏颜色
DarkTitleBarInactive深色主题非活动标题栏颜色
DarkTitleText深色主题标题文字颜色
DarkTitleTextInactive深色主题非活动标题文字颜色
DarkBorder深色主题边框颜色
DarkBorderInactive深色主题非活动边框颜色
LightTitleBar浅色主题标题栏颜色
LightTitleBarInactive浅色主题非活动标题栏颜色
LightTitleText浅色主题标题文字颜色
LightTitleTextInactive浅色主题非活动标题文字颜色
LightBorder浅色主题边框颜色
LightBorderInactive浅色主题非活动边框颜色

WindowProtected 窗口保护

启用后窗口内容受系统保护(如截图保护)。

macOS 平台配置

go
MacOS: application.MacOS{
    AppearanceName:    application.NSAppearanceNameDarkAqua,
    FullSizeContent:   true,
    TitleTransparent:  true,
    TitleHideText:     true,
    WindowRadius:      8,
    UseWindowDelegate: true,
    ToolBar:           &application.ToolBar{},
}

AppearanceName 外观

说明
NSAppearanceNameAqua标准浅色系统外观
NSAppearanceNameDarkAqua标准深色系统外观
NSAppearanceNameVibrantLight浅色生动外观
NSAppearanceNameAccessibilityHighContrastAqua高对比度浅色外观
NSAppearanceNameAccessibilityHighContrastDarkAqua高对比度深色外观
NSAppearanceNameAccessibilityHighContrastVibrantLight高对比度浅色生动外观
NSAppearanceNameAccessibilityHighContrastVibrantDark高对比度深色生动外观

其他 macOS 选项

字段类型说明
WindowRadiusfloat32窗口圆角半径(Frameless=true 时有效)
FullSizeContentbool全尺寸内容(延伸到标题栏)
TitleTransparentbool标题栏透明
TitleHideTextbool隐藏标题文字
UseWindowDelegatebool使用窗口委托(用于窗口事件回调)
ToolBar*ToolBar工具栏配置

Linux 平台配置

go
Linux: application.Linux{
    HardwareGPU: application.HGPUEnable,
}

HardwareGPU 硬件加速

说明
HGPUDefault默认设置
HGPUEnable启用硬件 GPU
HGPUDisable禁用硬件 GPU(虚拟机推荐)

完整示例

go
wvApp := wv.Init()
wvApp.SetOptions(application.Options{
    Caption:            "ENERGY App",
    DefaultURL:         "fs://energy/index.html",
    Width:              1200,
    Height:             800,
    Frameless:          true,
    WindowTransparent:  true,
    WebviewTransparent: true,
    BackgroundColor:    colors.NewARGB(0, 0, 0, 0),
    DisableDevTools:    false,
    DisableContextMenu: false,
    DisableResize:      false,
    Windows: application.Windows{
        Theme:           application.Dark,
        BackdropType:    application.BtAcrylic,
        WindowProtected: true,
    },
    MacOS: application.MacOS{
        AppearanceName:    application.NSAppearanceNameDarkAqua,
        FullSizeContent:   true,
        TitleTransparent:  true,
        TitleHideText:     true,
        WindowRadius:      8,
        UseWindowDelegate: true,
        ToolBar:           &application.ToolBar{},
    },
    Linux: application.Linux{
        HardwareGPU: application.HGPUEnable,
    },
})

本地资源加载

通过 SetLocalLoad 配置本地资源加载,详见 本地资源加载

go
wvApp.SetLocalLoad(application.LocalLoad{
    Scheme:     "app",
    Domain:     "custom",
    ResRootDir: "resources",
    FS:         resources, // embed.FS
})

GO
ENERGY