5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-06 20:01:37 +08:00
wails/mkdocs-website/docs/zh/development/status.md
2023-11-05 18:06:11 +11:00

22 KiB
Raw Blame History

将以下文本翻译为中文,并不要翻译 !!! 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.goCGo 实现
  • linux_purego.goPureGo 实现

CGO

默认情况下,使用 CGO 编译 Linux 端口。这会阻止轻松的交叉编译,因此同时也正在同时 开发 PureGo 实现。

Purego

可以使用以下命令编译示例:

CGO_ENABLED=0 go build -tags purego

注意:重构之后的功能目前无法正常工作。