5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-06 05:21:55 +08:00
wails/mkdocs-website/docs/zh/API/application.md
2023-11-05 18:06:11 +11:00

7.6 KiB
Raw Blame History

应用程序

应用程序 API 用于使用 Wails 框架创建应用程序。

New

APINew(appOptions Options) *App

New(appOptions Options) 使用给定的应用程序选项创建一个新的应用程序。它对未指定 的选项应用默认值,将其与提供的选项合并,然后初始化并返回应用程序的实例。

如果在初始化过程中出现错误,应用程序将停止,并显示提供的错误消息。

需要注意的是,如果全局应用程序实例已经存在,将返回该实例,而不是创建新的实例。

package main

import "github.com/wailsapp/wails/v3/pkg/application"

func main() {
    app := application.New(application.Options{
        Name:        "WebviewWindow Demo",
		// 其他选项
    })

	// 其余的应用程序逻辑
}

Get

Get() 返回全局应用程序实例。在代码的不同部分需要访问应用程序时非常有用。

    // 获取应用程序实例
    app := application.Get()

Capabilities

APICapabilities() capabilities.Capabilities

Capabilities() 返回应用程序当前具有的功能的映射。这些功能可以是操作系统提供的 不同功能,如 webview 功能。

    // 获取应用程序的功能
    capabilities := app.Capabilities()
	if capabilities.HasNativeDrag {
		// 做一些事情
    }

GetPID

APIGetPID() int

GetPID() 返回应用程序的进程 ID。

    pid := app.GetPID()

Run

APIRun() error

Run() 启动应用程序及其组件的执行。

    app := application.New(application.Options{
	    // 选项
	})
    // 运行应用程序
    err := application.Run()
    if err != nil {
        // 处理错误
    }

Quit

APIQuit()

Quit() 通过销毁窗口和可能的其他组件退出应用程序。

    // 退出应用程序
    app.Quit()

IsDarkMode

APIIsDarkMode() bool

IsDarkMode() 检查应用程序是否在暗模式下运行。它返回一个布尔值,指示是否启用了 暗模式。

    // 检查是否启用了暗模式
    if app.IsDarkMode() {
        // 做一些事情
    }

Hide

APIHide()

Hide() 隐藏应用程序窗口。

    // 隐藏应用程序窗口
    app.Hide()

Show

APIShow()

Show() 显示应用程序窗口。

    // 显示应用程序窗口
    app.Show()

NewWebviewWindow

APINewWebviewWindow() *WebviewWindow

NewWebviewWindow() 使用默认选项创建一个新的 Webview 窗口,并返回它。

    // 创建一个新的 Webview 窗口
    window := app.NewWebviewWindow()

NewWebviewWindowWithOptions

APINewWebviewWindowWithOptions(windowOptions WebviewWindowOptions) *WebviewWindow

NewWebviewWindowWithOptions() 使用自定义选项创建一个新的 Webview 窗口。新创建 的窗口将添加到应用程序管理的窗口映射中。

    // 使用自定义选项创建一个新的 Webview 窗口
    window := app.NewWebviewWindowWithOptions(WebviewWindowOptions{
		Name: "Main",
        Title: "My Window",
        Width: 800,
        Height: 600,
    })

OnWindowCreation

APIOnWindowCreation(callback func(window *WebviewWindow))

OnWindowCreation() 注册一个回调函数,当创建窗口时调用该函数。

    // 注册一个回调函数,当创建窗口时调用该函数
    app.OnWindowCreation(func(window *WebviewWindow) {
        // 做一些事情
    })

GetWindowByName

APIGetWindowByName(name string) *WebviewWindow

GetWindowByName() 获取并返回具有特定名称的窗口。

    // 通过名称获取窗口
    window := app.GetWindowByName("Main")

CurrentWindow

APICurrentWindow() *WebviewWindow

CurrentWindow() 获取并返回应用程序中当前活动窗口的指针。如果没有窗口,则返回 nil。

    // 获取当前窗口
    window := app.CurrentWindow()

RegisterContextMenu

APIRegisterContextMenu(name string, menu *Menu)

RegisterContextMenu() 注册具有给定名称的上下文菜单。稍后可以在应用程序中使用该 菜单。


    // 创建一个新的菜单
    ctxmenu := app.NewMenu()

    // 将菜单注册为上下文菜单
    app.RegisterContextMenu("MyContextMenu", ctxmenu)

SetMenu

APISetMenu(menu *Menu)

SetMenu() 设置应用程序的菜单。在 Mac 上,这将是全局菜单。对于 Windows 和 Linux这将是任何新窗口的默认菜单。

    // 创建一个新的菜单
    menu := app.NewMenu()

    // 设置应用程序的菜单
    app.SetMenu(menu)

ShowAboutDialog

APIShowAboutDialog()

ShowAboutDialog() 显示一个 "关于" 对话框。可以显示应用程序的名称、描述和图标。

    // 显示关于对话框
    app.ShowAboutDialog()

Info

APIInfoDialog()

InfoDialog() 创建并返回一个具有 InfoDialogTypeMessageDialog 的新实例。 此对话框通常用于向用户显示信息消息。

Question

APIQuestionDialog()

QuestionDialog() 创建并返回一个具有 QuestionDialogTypeMessageDialog 的 新实例。此对话框通常用于向用户提问并期望回应。

Warning

APIWarningDialog()

WarningDialog() 创建并返回一个具有 WarningDialogTypeMessageDialog 的新 实例。如其名称所示,此对话框主要用于向用户显示警告消息。

Error

APIErrorDialog()

ErrorDialog() 创建并返回一个具有 ErrorDialogTypeMessageDialog 的新实 例。此对话框设计用于在需要向用户显示错误消息时使用。

OpenFile

APIOpenFileDialog()

OpenFileDialog() 创建并返回一个新的 OpenFileDialogStruct。此对话框提示用户从 其文件系统中选择一个或多个文件。

SaveFile

APISaveFileDialog()

SaveFileDialog() 创建并返回一个新的 SaveFileDialogStruct。此对话框提示用户选 择其文件系统上的位置以保存文件。

OpenDirectory

APIOpenDirectoryDialog()

OpenDirectoryDialog() 创建并返回一个具有 OpenDirectoryDialogTypeMessageDialog 的新实例。此对话框使用户能够从其文件系统中选择目录。

On

APIOn(eventType events.ApplicationEventType, callback func(event *Event)) func()

On() 注册特定应用程序事件的事件侦听器。提供的回调函数将在相应事件发生时触发。 该函数返回一个可调用的函数,用于删除侦听器。

RegisterHook

APIRegisterHook(eventType events.ApplicationEventType, callback func(event *Event)) func()

RegisterHook() 注册要在特定事件期间作为钩子运行的回调函数。这些钩子在使用 On() 附加的侦听器之前运行。该函数返回一个可调用的函数,用于删除钩子。

GetPrimaryScreen

APIGetPrimaryScreen() (*Screen, error)

GetPrimaryScreen() 返回系统的主屏幕。

GetScreens

APIGetScreens() ([]*Screen, error)

GetScreens() 返回有关连接到系统的所有屏幕的信息。

这是提供的 App 结构中导出的方法的简要摘要。请注意,有关更详细的功能或注意事 项,请参考实际的 Go 代码或进一步的内部文档。

Options

--8<--
../v3/pkg/application/options_application.go
--8<--

Windows 选项

--8<--
../v3/pkg/application/options_application_win.go
--8<--

Mac 选项

--8<--
../v3/pkg/application/options_application_mac.go
--8<--