mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-06 10:32:05 +08:00
22 KiB
22 KiB
将以下文本翻译为中文,并不要翻译 !!! note
或 !!! tip
或以此格式的字符串:
状态
v3版功能的状态。
!!! note
此列表包含公有和内部API支持的混合内容。<br/>
它不完整且可能不是最新的。
已知问题
- Linux尚未与Windows/Mac达到功能平衡
应用程序
应用程序接口方法
方法 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
run() error | Y | Y | Y | |
destroy() | Y | Y | ||
setApplicationMenu(menu *Menu) | Y | Y | Y | |
name() string | Y | Y | ||
getCurrentWindowID() uint | Y | Y | Y | |
showAboutDialog(name string, description string, icon []byte) | Y | Y | ||
setIcon(icon []byte) | - | Y | Y | |
on(id uint) | Y | |||
dispatchOnMainThread(fn func()) | Y | Y | Y | |
hide() | Y | Y | Y | |
show() | Y | Y | Y | |
getPrimaryScreen() (*Screen, error) | Y | Y | ||
getScreens() ([]*Screen, error) | Y | Y |
Webview 窗口
Webview 窗口接口方法
方法 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
center() | Y | Y | Y | |
close() | y | Y | Y | |
destroy() | Y | Y | ||
execJS(js string) | y | Y | Y | |
focus() | Y | Y | ||
forceReload() | Y | Y | ||
fullscreen() | Y | Y | Y | |
getScreen() (*Screen, error) | y | Y | Y | |
getZoom() float64 | Y | Y | ||
height() int | Y | Y | Y | |
hide() | Y | Y | Y | |
isFullscreen() bool | Y | Y | Y | |
isMaximised() bool | Y | Y | Y | |
isMinimised() bool | Y | Y | Y | |
maximise() | Y | Y | Y | |
minimise() | Y | Y | Y | |
nativeWindowHandle() (uintptr, error) | Y | Y | ||
on(eventID uint) | y | Y | ||
openContextMenu(menu *Menu, data *ContextMenuData) | y | Y | ||
relativePosition() (int, int) | Y | Y | Y | |
reload() | y | Y | Y | |
run() | Y | Y | Y | |
setAlwaysOnTop(alwaysOnTop bool) | Y | Y | Y | |
setBackgroundColour(color RGBA) | Y | Y | Y | |
setEnabled(bool) | Y | Y | ||
setFrameless(bool) | Y | Y | ||
setFullscreenButtonEnabled(enabled bool) | - | Y | Y | Windows 没有全屏按钮 |
setHTML(html string) | Y | Y | Y | |
setMaxSize(width, height int) | Y | Y | Y | |
setMinSize(width, height int) | Y | Y | Y | |
setRelativePosition(x int, y int) | Y | Y | Y | |
setResizable(resizable bool) | Y | Y | Y | |
setSize(width, height int) | Y | Y | Y | |
setTitle(title string) | Y | Y | Y | |
setURL(url string) | Y | Y | Y | |
setZoom(zoom float64) | Y | Y | Y | |
show() | Y | Y | Y | |
size() (int, int) | Y | Y | Y | |
toggleDevTools() | Y | Y | Y | |
unfullscreen() | Y | Y | Y | |
unmaximise() | Y | Y | Y | |
unminimise() | Y | Y | Y | |
width() int | Y | Y | Y | |
zoom() | Y | Y | ||
zoomIn() | Y | Y | Y | |
zoomOut() | Y | Y | Y | |
zoomReset() | Y | Y | Y |
运行时
应用程序
功能 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
退出 | Y | Y | Y | |
隐藏 | Y | Y | ||
显示 | Y | Y |
对话框
功能 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
信息 | Y | Y | Y | |
警告 | Y | Y | Y | |
错误 | Y | Y | Y | |
问题 | Y | Y | Y | |
打开文件 | Y | Y | ||
保存文件 | Y | Y |
剪贴板
功能 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
设置文本 | Y | Y | ||
文本 | Y | Y |
上下文菜单
功能 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
打开上下文菜单 | Y | Y | ||
默认开启 | ||||
通过 HTML 控制 | Y |
默认上下文菜单默认对所有contentEditable: true
、<input>
或<textarea>
标签的元
素或具有--default-contextmenu: true
样式的元素启
用。--default-contextmenu: show
样式将始终显示上下文菜
单。--default-contextmenu: hide
样式将始终隐藏上下文菜单。
嵌套在带有--default-contextmenu: hide
样式的标签下的任何内容,除非使
用--default-contextmenu: show
进行显式设置,否则不会显示上下文菜单。
屏幕
功能 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
获取所有 | Y | Y | Y | |
获取主屏幕 | Y | Y | Y | |
获取当前屏幕 | Y | Y | Y |
系统
功能 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
是否为暗模式 | Y |
窗口
Y = 支持 U = 未经测试
- = 不可用
功能 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
居中 | Y | Y | Y | |
获得焦点 | Y | Y | ||
全屏 | Y | Y | Y | |
获得缩放比例 | Y | Y | Y | 获取当前视图比例 |
高度 | Y | Y | Y | |
隐藏 | Y | Y | Y | |
最大化 | Y | Y | Y | |
最小化 | Y | Y | Y | |
相对位置 | Y | Y | Y | |
屏幕 | Y | Y | Y | 获取窗口的屏幕 |
设置始终在顶部 | Y | Y | Y | |
设置背景颜色 | Y | Y | Y | https://github.com/MicrosoftEdge/WebView2Feedback/issues/1621#issuecomment-938234294 |
设置启用状态 | Y | U | - | 设置窗口是否可用 |
设置最大尺寸 | Y | Y | Y | |
设置最小尺寸 | Y | Y | Y | |
设置相对位置 | Y | Y | Y | |
设置是否可调整大小 | Y | Y | Y | |
设置大小 | Y | Y | Y | |
设置标题 | Y | Y | Y | |
设置缩放比例 | Y | Y | Y | 设置视图比例 |
显示 | Y | Y | Y | |
尺寸 | Y | Y | Y | |
取消全屏 | Y | Y | Y | |
取消最大化 | Y | Y | Y | |
取消最小化 | Y | Y | Y | |
宽度 | Y | Y | Y | |
缩放 | Y | Y | ||
放大 | Y | Y | Y | 增加视图比例 |
缩小 | Y | Y | Y | 减小视图比例 |
重置缩放 | Y | Y | Y | 重置视图比例 |
窗口选项
下表中的'Y'表示已经测试并且在窗口创建时应用了该选项。'X'表示该平台不支持该选项。
功能 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
始终在顶部 | Y | |||
背景颜色 | Y | Y | ||
背景类型 | 默认情况下,亚克力效果有效,其他无效 | |||
CSS | Y | Y | ||
DevToolsEnabled | Y | Y | Y | |
DisableResize | Y | Y | ||
启用拖放 | Y | |||
启用欺诈网站警告 | ||||
获得焦点 | Y | Y | ||
无边框 | Y | Y | ||
启用全屏按钮 | Y | Windows上没有全屏按钮 | ||
HTML | Y | Y | ||
JS | Y | Y | ||
Mac | - | - | ||
最大高度 | Y | Y | ||
最大宽度 | Y | Y | ||
最小高度 | Y | Y | ||
最小宽度 | Y | Y | ||
名称 | Y | Y | ||
启动时打开检查器 | ||||
启动状态 | Y | |||
标题 | Y | Y | ||
URL | Y | Y | ||
宽度 | Y | Y | ||
Windows | Y | - | - | |
X | Y | Y | ||
Y | Y | Y | ||
缩放 | ||||
启用缩放控件 |
日志
要记录还是不要记录?系统日志器与自定义日志器。
菜单
事件 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
默认应用程序菜单 | Y | Y | Y |
托盘菜单
功能 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
图标 | Y | Y | Windows具有默认的浅色/深色模式图标并支持PNG或ICO。 | |
标签 | - | Y | ||
标签(ANSI码) | - | |||
菜单 | Y | Y |
方法
方法 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
setLabel(label string) | - | Y | ||
run() | Y | Y | ||
setIcon(icon []byte) | Y | Y | ||
setMenu(menu *Menu) | Y | Y | ||
setIconPosition(position int) | - | Y | ||
setTemplateIcon(icon []byte) | - | Y | ||
destroy() | Y | Y | ||
setDarkModeIcon(icon []byte) | Y | Y |
跨平台事件
将本机事件映射到跨平台事件。
事件 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
WindowWillClose | WindowWillClose | |||
WindowDidClose | ||||
WindowDidResize | ||||
WindowDidHide | ||||
ApplicationWillTerminate |
... 添加更多
绑定生成
工作正常。
模型生成
工作正常。
任务文件
包含很多开发所需的内容。
主题
模式 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
暗 | Y | |||
亮 | Y | |||
系统 | Y |
NSIS安装程序
待定
模板
所有模板都可用。
插件
内置插件支持:
插件 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
浏览器 | Y | Y | ||
KV 存储 | Y | Y | Y | |
日志 | Y | Y | Y | |
单实例 | Y | Y | ||
SQLite | Y | Y | Y | |
开机自启动 | Y | Y | ||
服务器 |
待办事项:
- 确保每个插件都有一个可以注入到窗口中的JS包装器。
打包
Windows | Linux | Mac | 备注 | |
---|---|---|---|---|
图标生成 | Y | Y | ||
图标嵌入 | Y | Y | ||
Info.plist | - | Y | ||
NSIS 安装程序 | - | |||
Mac 包 | - | Y | ||
Windows 可执行文件 | Y | - |
无边框窗口
功能 | Windows | Linux | Mac | 备注 |
---|---|---|---|---|
调整大小 | Y | Y | ||
拖拽 | Y | Y | Y | Linux-始终可以使用 Meta +左键拖拽 |
Mac 特定
- 半透明
Mac 选项
功能 | 默认值 | 备注 |
---|---|---|
背景 | MacBackdropNormal | 标准的实心窗口 |
禁用阴影 | false | |
标题栏 | 默认情况下使用标准的窗口装饰 | |
外观 | DefaultAppearance | |
隐藏标题栏高度 | 0 | 为无边框窗口创建一个不可见的标题栏 |
禁用阴影 | false | 禁用窗口投影阴影 |
Windows 特定
- 半透明
- 自定义主题
Windows 选项
功能 | 默认值 | 备注 |
---|---|---|
背景类型 | Solid | |
禁用图标 | false | |
主题 | SystemDefault | |
自定义主题 | nil | |
禁用无边框窗口装饰 | false | |
窗口遮罩 | nil | 使窗口成为位图的内容 |
Linux 特定
由*_linux.go
文件使用的函数的实现详细信息位于以下文件中:
- linux_cgo.go:CGo 实现
- linux_purego.go:PureGo 实现
CGO
默认情况下,使用 CGO 编译 Linux 端口。这会阻止轻松的交叉编译,因此同时也正在同时 开发 PureGo 实现。
Purego
可以使用以下命令编译示例:
CGO_ENABLED=0 go build -tags purego
注意:重构之后的功能目前无法正常工作。