跳到正文

窗口与原生服务

从 main 调用一次 native.Run。它的启动回调负责创建窗口并注册应用级处理函数。

#窗口生命周期

native.NewWindow 创建一个带有自己组件的窗口。关闭窗口会销毁该界面。如果稍后的回调需要窗口句柄,在构造组件时捕获 native.CurrentWindow()。

用 native.App.OnReopen 处理 Dock 图标,以便在没有可见窗口时打开新窗口。

#命令与服务

对话框、剪贴板、Shell、外观、菜单、通知以及其他平台功能,使用带类型的 native API。会返回结果的操作使用完成回调——在回调中处理错误,而不是阻塞。托盘图标见托盘图标。

后台工作用 ui.Async,组件销毁时会取消。native.Dispatch 把结果送回 UI 协程。只在那里读写信号。

独立的原生包使用 native.InvokeExtension 和 native.OpenExtension。见编写扩展。

#事件与文件监听

native.WatchFiles(paths, changed, ready) 使用操作系统通知,并返回停止函数。组件拥有的监听器用 ui.OnCleanup 注册该停止函数。优先使用原生事件或监听器,而不是轮询。