mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-03 00:22:57 +08:00
Merge pull request #967 from misitebao/synchronize-documents
docs: synchronize and optimize chinese documents
This commit is contained in:
commit
7bf2218c36
@ -1,6 +1,6 @@
|
||||
---
|
||||
slug: wails-v2-beta-for-windows
|
||||
title: Windows 版的 Wails v2 公测啦
|
||||
title: 适用于 Windows 平台的 Wails v2 测试版
|
||||
authors:
|
||||
- name: Lea Anthony
|
||||
title: Wails 项目作者
|
||||
@ -13,7 +13,10 @@ tags: [wails, v2]
|
||||
<img
|
||||
src="/img/wails.png"
|
||||
width="40%"
|
||||
style={{ "box-shadow": "rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px" }}
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
@ -41,7 +44,10 @@ Windows 的唯一选择是 IE11 渲染器。许多错误报告都因为受到它
|
||||
<img
|
||||
src="/img/devtools.png"
|
||||
width="75%"
|
||||
style={{ "box-shadow": "rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px" }}
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
@ -60,7 +66,10 @@ Gophers 欢呼吧!单个二进制文件的设想依然存在!
|
||||
<img
|
||||
src="/img/wails-menus.png"
|
||||
width="60%"
|
||||
style={{ "box-shadow": "rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px" }}
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
@ -76,7 +85,10 @@ Gophers 欢呼吧!单个二进制文件的设想依然存在!
|
||||
<img
|
||||
src="/img/vscode.png"
|
||||
width="100%"
|
||||
style={{ "box-shadow": "rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px" }}
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
@ -100,7 +112,10 @@ v1 的一个巨大痛点是需要将整个应用程序压缩为单个 JS 和 CSS
|
||||
<img
|
||||
src="/img/browser.png"
|
||||
width="60%"
|
||||
style={{ "box-shadow": "rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px" }}
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
@ -116,6 +131,7 @@ v1 的一个巨大痛点是需要将整个应用程序压缩为单个 JS 和 CSS
|
||||
|
||||
在 Go 中,我们习惯于在应用程序中处理结构。将结构发送到我们的前端并将它们用作我们应用程序中的状态通常很有用。在 v1 中,这是一个非常手动的过程,对开发人员来说有点负担。
|
||||
我很高兴地宣布,在 v2 中,任何在开发模式下运行的应用程序都将自动为所有结构生成 Typescript 模型,这些结构是绑定方法的输入或输出参数。这实现了两个世界之间数据模型的无缝交换。
|
||||
|
||||
除此之外,还会动态生成另一个 JS 模块来包装您的所有绑定方法。这为您的方法提供了 JSDoc,在您的 IDE 中提供代码完成和提示。当您在自动生成的包含 Go 代码的模块中点击 Tab 时自动导入数据模型,这真的很酷!
|
||||
|
||||
### 远程模板
|
||||
@ -124,7 +140,10 @@ v1 的一个巨大痛点是需要将整个应用程序压缩为单个 JS 和 CSS
|
||||
<img
|
||||
src="/img/remote.png"
|
||||
width="60%"
|
||||
style={{ "box-shadow": "rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px" }}
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
@ -137,7 +156,7 @@ v1 的一个巨大痛点是需要将整个应用程序压缩为单个 JS 和 CSS
|
||||
|
||||
### 结语
|
||||
|
||||
Wails v2 代表了该项目的新基础。此版本的目的是获得有关新方式的反馈,并在完整版本发布之前解决所有错误。欢迎提出您的意见。请直接反馈到 [v2 测试版](https://github.com/wailsapp/wails/discussions/828)讨论板。
|
||||
Wails v2 代表了该项目的新起点。此版本的目的是获得有关新方式的反馈,并在完整版本发布之前解决所有错误。欢迎提出您的意见。请直接反馈到 [v2 测试版](https://github.com/wailsapp/wails/discussions/828)讨论板。
|
||||
|
||||
为了达到这一点,经历了许多曲折和坎坷。部分原因是早期的技术决策需要改变,另一部分原因是我们花时间构建的一些核心问题的变通方式已经在上游得到了解决:Go 的 embed 特性就是一个很好的例子。幸运的是,一切都刚刚好,今天我们有了我们所能拥有的最好的解决方案。我相信等待是值得的 - 这在两个月前是完全不可能的。
|
||||
|
||||
|
@ -0,0 +1,182 @@
|
||||
---
|
||||
slug: wails-v2-beta-for-mac
|
||||
title: 适用于 Mac 平台的 Wails v2 测试版
|
||||
authors:
|
||||
- name: Lea Anthony
|
||||
title: Wails 项目作者
|
||||
url: https://github.com/leaanthony
|
||||
image_url: https://github.com/leaanthony.png
|
||||
tags: [wails, v2]
|
||||
---
|
||||
|
||||
<div class="text--center">
|
||||
<img
|
||||
src="/img/wails-mac.png"
|
||||
width="60%"
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
今天是 Mac 版 Wails v2 的第一个测试版!花了很长时间才走到这一步,我希望今天的版本会给你一些相当有用的东西。为了达到这一点,经历了许多曲折,我希望在您的帮助下,消除问题并为最终的 v2 版本完善 Mac 端口。
|
||||
|
||||
你的意思是这还没有准备好生产?对于您的用例,它可能已经准备就绪,但仍然存在许多已知问题,因此请密切关注此[项目板](https://github.com/wailsapp/wails/projects/7),如果您愿意做出贡献,我们将非常欢迎您!
|
||||
|
||||
那么 Mac 版 Wails v2 与 v1 有哪些新变化?提示:它与 Windows Beta 非常相似 😉
|
||||
|
||||
### 新特性
|
||||
|
||||
<div class="text--center">
|
||||
<img
|
||||
src="/img/wails-menus-mac.png"
|
||||
width="80%"
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
有很多对原生菜单支持的需求。Wails 终于让您满意了。应用程序菜单现已可用,并且包括对大多数本原生菜单功能的支持。这包括标准菜单项、复选框、单选组、子菜单和分隔符。
|
||||
|
||||
在 v1 中有大量的需求,要求能够更好地控制窗口本身。我很高兴地宣布,有专门用于此的新运行时 API。它功能丰富,支持多显示器配置。还有一个改进的对话框 API:现在,您可以拥有具有丰富配置的现代原生对话框,以满足您所有的对话框需求。
|
||||
|
||||
### Mac 特定选项
|
||||
|
||||
除了普通的应用程序选项,Wails v2 for Mac 还带来了一些 Mac 附加功能:
|
||||
|
||||
- 让你的窗口变得时髦和半透明,就像所有非常快速的应用程序一样!
|
||||
- 高度可定制的标题栏
|
||||
- 我们支持应用程序的 NSAppearance 选项
|
||||
- 自动创建“关于”菜单的简单配置
|
||||
|
||||
### 无需打包资源
|
||||
|
||||
v1 的一个巨大痛点是需要将整个应用程序压缩为单个 JS 和 CSS 文件。我很高兴地宣布,对于 v2,不需要以任何形式打包资源。
|
||||
想要加载本地图片?使用带有本地`src`路径的`<img>`标签。想使用很酷的字体吗?复制它并在你的 CSS 中添加它的路径。
|
||||
|
||||
> 哇,这听起来像一个网络服务器......
|
||||
|
||||
是的,它就像一个网络服务器一样工作,但它不是。
|
||||
|
||||
> 那么我如何包含我的资源?
|
||||
|
||||
您只需将`embed.FS`包含所有资产的单个文件传递到您的应用程序配置中。他们甚至不需要在顶级目录中——Wails 会为你解决这个问题。
|
||||
|
||||
### 全新的开发体验
|
||||
|
||||
现在不需要打包资源,它启用了全新的开发体验。新`wails dev`命令将构建并运行您的应用程序,但它不使用`embed.FS`中的资源,而是直接从磁盘加载它们。
|
||||
|
||||
它还提供了附加功能:
|
||||
|
||||
- 热重载 - 对前端资产的任何更改都将触发并自动重载应用程序前端
|
||||
- 自动重新构建 - 对 Go 代码的任何更改都将重新构建并重新启动您的应用程序
|
||||
|
||||
除此之外,网络服务器将在端口 34115 上启动。这将为您的应用程序提供连接到它的任何浏览器。所有连接的 Web 浏览器都会响应系统事件,例如资产更改时的热重载。
|
||||
|
||||
在 Go 中,我们习惯于在应用程序中处理结构。将结构发送到我们的前端并将它们用作我们应用程序中的状态通常很有用。在 v1 中,这是一个非常手动的过程,对开发人员来说有点负担。
|
||||
我很高兴地宣布,在 v2 中,任何在开发模式下运行的应用程序都将自动为所有结构生成 Typescript 模型,这些结构是绑定方法的输入或输出参数。这实现了两个世界之间数据模型的无缝交换。
|
||||
|
||||
除此之外,还会动态生成另一个 JS 模块来包装您的所有绑定方法。这为您的方法提供了 JSDoc,在您的 IDE 中提供代码完成和提示。当您在自动生成的包含 Go 代码的模块中点击 Tab 时自动导入数据模型,这真的很酷!
|
||||
|
||||
### Remote Templates
|
||||
|
||||
<div class="text--center">
|
||||
<img
|
||||
src="/img/remote-mac.png"
|
||||
width="80%"
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
让应用程序快速启动并运行一直是 Wails 项目的一个关键目标。当我们推出时,我们试图涵盖当时的很多现代框架:react、vue 和 angular。前端开发的世界非常自以为是,快速发展且难以掌握!
|
||||
结果,我们发现我们的基本模板很快就过时了,这导致了维护问题。这也意味着我们没有用于最新和最伟大技术堆栈的酷炫现代模板。
|
||||
|
||||
在 v2 中,我希望通过让您能够自己创建和托管模板来增强社区的能力,而不是依赖于 Wails 项目。所以现在您可以使用社区支持的模板创建项目!
|
||||
我希望这将激励开发人员创建一个充满活力的项目模板生态系统。我对我们的开发者社区可以创造的东西感到非常兴奋!
|
||||
|
||||
### 原生 M1 支持
|
||||
|
||||
感谢[Mat Ryer](https://github.com/matryer/)的惊人支持,Wails 项目现在支持 M1 原生构建:
|
||||
|
||||
<div class="text--center">
|
||||
<img
|
||||
src="/img/build-darwin-arm.png"
|
||||
width="80%"
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
您也可以指定`darwin/amd64`为目标:
|
||||
|
||||
<div class="text--center">
|
||||
<img
|
||||
src="/img/build-darwin-amd.png"
|
||||
width="80%"
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
哦,我差点忘了....你也可以做`darwin/universal`....😉
|
||||
|
||||
<div class="text--center">
|
||||
<img
|
||||
src="/img/build-darwin-universal.png"
|
||||
width="80%"
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
### 交叉编译到 Windows
|
||||
|
||||
因为 Windows 的 Wails v2 是纯 Go,所以你可以在没有 docker 的情况下针对 Windows 构建。
|
||||
|
||||
<div class="text--center">
|
||||
<img
|
||||
src="/img/build-cross-windows.png"
|
||||
width="80%"
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
### WKWebView 渲染器
|
||||
|
||||
V1 依赖于 WebView(现已弃用)组件。V2 使用最新的 WKWebKit 组件,所以期待 Apple 的最新和最棒的组件。
|
||||
|
||||
### 结语
|
||||
|
||||
正如我在 Windows 发行说明中所说,Wails v2 代表了该项目的新起点。此版本的目的是获得有关新方式的反馈,并在完整版本发布之前解决所有错误。非常欢迎您的意见!请将任何反馈发送到[v2 测试版](https://github.com/wailsapp/wails/discussions/828)讨论板。
|
||||
|
||||
最后,我还要特别感谢包括[JetBrains](https://www.jetbrains.com?from=Wails)在内的所有项目[赞助商](/docs/credits#sponsors),他们的幕后支持以多种方式推动了该项目。
|
||||
|
||||
我期待看到在项目的下一个激动人心的阶段人们用 Wails 构建什么!
|
||||
|
||||
Lea.
|
||||
|
||||
PS: Linux 用户们,你们将是下一个!
|
||||
|
||||
PPS:如果您或您的公司发现 Wails 有用,可以考虑[赞助该项目](https://github.com/sponsors/leaanthony)。谢谢!
|
@ -10,10 +10,9 @@ sidebar_position: 1
|
||||
|
||||
Wails 是一个可让您使用 Go 和 Web 技术编写桌面应用的项目。
|
||||
|
||||
将它看作为 Go 的轻量级和快速的 Electron 替代品。 您可以使用 Go 的灵活性和强大功能,结合丰富的现代前端,轻松的构建应用程序。
|
||||
将它看作为 Go 的快并且轻量的 Electron 替代品。 您可以使用 Go 的灵活性和强大功能,结合丰富的现代前端,轻松的构建应用程序。
|
||||
|
||||
Wails 一点也不弱!这是 [xbar](https://xbarapp.com) - 一个使用 Wails 编写的 MacOS 桌面应用。它使用 Mac 的系统原生菜单,支持浅色和深色桌面主题,主窗口使用半透明,使其具有原生应用的
|
||||
“冰霜” 效果。
|
||||
Wails 一点也不弱!这是 [xbar](https://xbarapp.com) - 一个使用 Wails 编写的 MacOS 桌面应用。它使用 Mac 的系统原生菜单,支持浅色和深色桌面主题,主窗口使用半透明,使其具有原生应用的“冰霜” 效果。
|
||||
|
||||
<div class="text--center">
|
||||
<a href="https://xbarapp.com"><img src="/img/xbar-app-preview-2.png"/></a>
|
||||
@ -21,7 +20,7 @@ Wails 一点也不弱!这是 [xbar](https://xbarapp.com) - 一个使用 Wails
|
||||
|
||||
## 原生元素
|
||||
|
||||
Wails 使用专门的库来处理原生元素,例如窗口、菜单、对话框等,因此您可以构建美观、功能丰富的桌面应用程序。
|
||||
Wails 使用专门构建的库来处理原生元素,例如窗口、菜单、对话框等,因此您可以构建美观、功能丰富的桌面应用程序。
|
||||
|
||||
**它不嵌入浏览器**,因此性能高。相反,它使用平台的原生渲染引擎。在 Windows 上,是基于 Chromium 构建的新 Microsoft Webview2 库。
|
||||
|
||||
|
@ -5,7 +5,7 @@ sidebar_position: 99
|
||||
# 荣誉墙
|
||||
|
||||
- [Lea Anthony](https://github.com/leaanthony) - 项目所有者,首席开发人员
|
||||
- [Misitebao](https://github.com/misitebao) - 中文文档,Windows 测试,漏洞发现者
|
||||
- [Misitebao](https://github.com/misitebao) - 中文文档,Windows 平台测试,漏洞发现者
|
||||
- [Travis McLane](https://github.com/tmclane) - 处理交叉编译相关工作, MacOS 平台的测试
|
||||
- [Byron Chris](https://github.com/bh90210) - Linux 发行版指导,Linux 平台的测试
|
||||
|
||||
@ -31,6 +31,9 @@ sidebar_position: 99
|
||||
<a href="https://github.com/codydbentley" style="width:100px">
|
||||
<img src="https://github.com/codydbentley.png?size=100" width="100"/>
|
||||
</a>
|
||||
<a href="https://github.com/CrackDavid" style="width:100px">
|
||||
<img src="https://github.com/CrackDavid.png?size=100" width="100"/>
|
||||
</a>
|
||||
<br/>
|
||||
<br/>
|
||||
<a href="https://github.com/matryer" style="width:100px">
|
||||
|
@ -7,8 +7,9 @@ sidebar_position: 1
|
||||
## 支持的平台
|
||||
|
||||
- Windows 10
|
||||
- MacOS x64 & arm64 (due October '21)
|
||||
- Linux (due December '21)
|
||||
- MacOS 10.13+ (amd64)
|
||||
- MacOS 11.0+ (arm64)
|
||||
- Linux (截至时间 12 月 22 日)
|
||||
|
||||
## 依赖
|
||||
|
||||
@ -49,11 +50,18 @@ import TabItem from "@theme/TabItem";
|
||||
>
|
||||
<TabItem value="Windows">
|
||||
Wails 要求安装
|
||||
<a href="https://developer.microsoft.com/zh-cn/microsoft-edge/webview2/">WebView2</a>
|
||||
运行时。一些 Windows 已经默认安装了这个。您可以使用 <code>wails doctor</code>
|
||||
<a href="https://developer.microsoft.com/zh-cn/microsoft-edge/webview2/">
|
||||
WebView2
|
||||
</a>
|
||||
运行时。一些 Windows 已经默认安装了这个。您可以使用{" "}
|
||||
<code>wails doctor</code>
|
||||
命令进行检查(见下文)。
|
||||
</TabItem>
|
||||
<TabItem value="MacOS">即将推出...</TabItem>
|
||||
<TabItem value="MacOS">
|
||||
Wails 要求安装 xcode 命令行工具。这可以通过运行以下命令来完成:
|
||||
<br />
|
||||
<code>xcode-select --install</code>
|
||||
</TabItem>
|
||||
<TabItem value="Linux">即将推出...</TabItem>
|
||||
</Tabs>
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
默认模板使用 `main.go` 配置和运行应用程序, 同时`app.go`用于定义应用程序逻辑.
|
||||
|
||||
该`app.go`文件将定义一个结构体,该结构体有 2 个方法作为主应用程序的回调:
|
||||
`app.go`文件将定义一个结构体,该结构体有 2 个方法作为主应用程序的回调:
|
||||
|
||||
```go title="app.go"
|
||||
type App struct {
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
## 漏洞
|
||||
|
||||
对于提出漏洞,请在 GitHub 上打开一个 Issue 并给出[v2]标签。wails doctor 在 Issue 中包含`wails doctor`的输出以帮助我们了解您的环境。
|
||||
对于提出漏洞,请在 GitHub 上打开一个 Issue 并给出[v2]标签。在 Issue 中包含`wails doctor`的输出以帮助我们了解您的环境。
|
||||
|
||||
对于修复漏洞,请在您想要接受的 Issue 上发表评论,我们将在 Issue 上贴上标签。最好使用 Windows,因为它是使用纯 Go 中完成的,调试更容易。
|
||||
|
||||
|
@ -13,16 +13,16 @@ Wails CLI 有许多用于管理项目的命令。所有命令都以此方式运
|
||||
|
||||
`wails init` 用于生成项目。
|
||||
|
||||
| 标志 | 描述 | 默认 |
|
||||
| :----------------- | :---------------------------------------------------------------------------------- | :------ |
|
||||
| -n "project name" | 项目名. **强制必填**. | |
|
||||
| -d "project dir" | 要创建的项目目录 | 项目名 |
|
||||
| -g | 初始化 git 存储库 | |
|
||||
| -l | 可用项目模板列表 | |
|
||||
| -q | 禁止输出到控制台 | |
|
||||
| -t "template name" | 要使用的项目模板。这可能是默认模板的名称或在 github 上托管的远程模板的 URL 的名称。 | vanilla |
|
||||
| -ide | 生成 IDE 项目文件 | |
|
||||
| -f | 强制构建应用 | false |
|
||||
| 标志 | 描述 | 默认 |
|
||||
| :------------ | :---------------------------------------------------------------------------- | :------ |
|
||||
| -n "项目名称" | 项目名称。 **强制必填** | |
|
||||
| -d "项目目录" | 要创建的项目目录 | 项目名 |
|
||||
| -g | 初始化 git 存储库 | |
|
||||
| -l | 可用项目模板列表 | |
|
||||
| -q | 禁止输出到控制台 | |
|
||||
| -t "模板名称" | 要使用的项目模板。这可能是默认模板的名称或在 github 上托管的远程模板的 URL 。 | vanilla |
|
||||
| -ide | 生成 IDE 项目文件 | |
|
||||
| -f | 强制构建应用 | false |
|
||||
|
||||
示例:
|
||||
`wails init -n test -d mytestproject -g -ide vscode -q`
|
||||
@ -43,7 +43,7 @@ Wails CLI 有许多用于管理项目的命令。所有命令都以此方式运
|
||||
|
||||
**Wails 项目不维护也不对第 3 方模板负责**
|
||||
|
||||
如果您不确定某个模板,请检查 `package.json` 中运行的脚本和安装的模块。
|
||||
如果您不信任某个模板,请检查 `package.json` 中运行的脚本和安装的模块。
|
||||
|
||||
:::
|
||||
|
||||
@ -51,20 +51,20 @@ Wails CLI 有许多用于管理项目的命令。所有命令都以此方式运
|
||||
|
||||
`wails build`用于将您的项目编译为生产可用的二进制文件。
|
||||
|
||||
| 标志 | 描述 | 默认 |
|
||||
| :------------------- | :----------------------------------------------------- | :------- |
|
||||
| -clean | 清理`build/bin`目录 | |
|
||||
| -compiler "compiler" | 使用不同的 go 编译器来构建,例如 go1.15beta1 | go |
|
||||
| -ldflags "flags" | 传递给编译器的额外 ldflags | |
|
||||
| -nopackage | 不打包应用程序 | |
|
||||
| -o filename | 输出文件名 | |
|
||||
| -s | 跳过前端构建 | |
|
||||
| -f | 强制构建应用 | false |
|
||||
| -tags "extra tags" | 传递给编译器构建标签(引号和空格分隔) | |
|
||||
| -upx | 使用“upx”压缩最终二进制文件 | |
|
||||
| -upxflags | 传递给 upx 的 flags | |
|
||||
| -v int | 详细级别 (0 - silent, 1 - default, 2 - verbose) | 1 |
|
||||
| -webview2 | WebView2 安装程序策略:: download,embed,browser,error. | download |
|
||||
| 标志 | 描述 | 默认 |
|
||||
| :------------------- | :--------------------------------------------------- | :------- |
|
||||
| -clean | 清理`build/bin`目录 | |
|
||||
| -compiler "compiler" | 使用不同的 go 编译器来构建,例如 go1.15beta1 | go |
|
||||
| -ldflags "flags" | 传递给编译器的额外 ldflags | |
|
||||
| -nopackage | 不打包应用程序 | |
|
||||
| -o filename | 输出文件名 | |
|
||||
| -s | 跳过前端构建 | |
|
||||
| -f | 强制构建应用 | false |
|
||||
| -tags "extra tags" | 传递给编译器构建标签(引号和空格分隔) | |
|
||||
| -upx | 使用“upx”压缩最终二进制文件 | |
|
||||
| -upxflags | 传递给 upx 的 flags | |
|
||||
| -v int | 详细级别 (0 - silent, 1 - default, 2 - verbose) | 1 |
|
||||
| -webview2 | WebView2 安装程序策略:download,embed,browser,error. | download |
|
||||
|
||||
如果您更喜欢使用标准 Go 工具进行构建,请参阅[手动构建](/docs/guides/manual-builds)指南。
|
||||
|
||||
@ -72,6 +72,12 @@ Wails CLI 有许多用于管理项目的命令。所有命令都以此方式运
|
||||
|
||||
`wails build -clean -o myproject.exe`
|
||||
|
||||
:::info 苹果芯片上的 UPX
|
||||
|
||||
在苹果芯片上使用 UPX 相关的[问题](https://github.com/upx/upx/issues/446)。
|
||||
|
||||
:::
|
||||
|
||||
## 诊断检查
|
||||
|
||||
`wails doctor` 将运行诊断程序以确保您的系统已准备好进行开发。
|
||||
@ -134,8 +140,10 @@ Your system is ready for Wails development!
|
||||
| -wailsjsdir | 生成生成的 Wails JS 模块的目录 | `wails.json`中的值 |
|
||||
| -debounce | 检测到资源更改后等待重新加载的时间 | 100 (毫秒) |
|
||||
| -devserverurl "url" | 使用第 3 方开发服务器 url, 例如 Vite | "http://localhost:34115" |
|
||||
| -appargs "args" | 以 shell 样式传递给应用程序的参数 | |
|
||||
| -platform "platform" | 目标平台/架构 | `runtime.GOOS` |
|
||||
|
||||
如果在命令行上提供了`-assetdir`,`-wailsjsdir`,`debounce`或`devserverurl`标志,它们将保存在`wails.json`中,并成为后续调用的默认值。
|
||||
如果在命令行上提供了`-assetdir`、`-wailsjsdir`、`debounce`或`devserverurl`标志,它们将保存在`wails.json`中,并成为后续调用的默认值。
|
||||
|
||||
示例:
|
||||
|
||||
@ -159,7 +167,7 @@ Wails 使用模板来生成项目。`wails generate template`命令有助于构
|
||||
| 标志 | 描述 |
|
||||
| :--------------- | :----------------------------- |
|
||||
| -name | 模板名称(必填) |
|
||||
| -frontend "path" | 要在模板中使用的前端项目的路径 |
|
||||
| -frontend "路径" | 要在模板中使用的前端项目的路径 |
|
||||
|
||||
有关创建模板的更多详细信息,请参阅[模板指南](/docs/guides/templates)。
|
||||
|
||||
@ -167,10 +175,10 @@ Wails 使用模板来生成项目。`wails generate template`命令有助于构
|
||||
|
||||
`wails update` 将更新 Wails CLI 的版本。
|
||||
|
||||
| 标志 | 描述 |
|
||||
| :----------------- | :--------------------- |
|
||||
| -pre | 更新到最新的预发布版本 |
|
||||
| -version "version" | 安装指定版本的 CLI |
|
||||
| 标志 | 描述 |
|
||||
| :-------------- | :--------------------- |
|
||||
| -pre | 更新到最新的预发布版本 |
|
||||
| -version "版本" | 安装指定版本的 CLI |
|
||||
|
||||
## 版本
|
||||
|
||||
|
@ -66,16 +66,17 @@ type MenuItem struct {
|
||||
}
|
||||
```
|
||||
|
||||
| 字段 | 类型 | 笔记 |
|
||||
| ----------- | ----------------------------- | ----------------------------------- |
|
||||
| Label | string | 菜单文字 |
|
||||
| Accelerator | [\*keys.Accelerator](#加速器) | 此菜单项的键绑定 |
|
||||
| Type | [Type](#类型) | 菜单项的类型 |
|
||||
| Disabled | bool | 禁用菜单项 |
|
||||
| Hidden | bool | 隐藏此菜单项 |
|
||||
| Checked | bool | 向菜单项设置选中 (复选框和单选类型) |
|
||||
| SubMenu | [\*Menu](#菜单) | 设置子菜单 |
|
||||
| Click | [Callback](#回调) | 单击菜单时的回调函数 |
|
||||
| 字段 | 类型 | 笔记 |
|
||||
| ----------- | ----------------------------- | ------------------------------------------- |
|
||||
| Label | string | 菜单文字 |
|
||||
| Accelerator | [\*keys.Accelerator](#加速器) | 此菜单项的键绑定 |
|
||||
| Type | [Type](#类型) | 菜单项的类型 |
|
||||
| Disabled | bool | 禁用菜单项 |
|
||||
| Hidden | bool | 隐藏此菜单项 |
|
||||
| Checked | bool | 向菜单项设置选中 (复选框和单选类型) |
|
||||
| SubMenu | [\*Menu](#菜单) | 设置子菜单 |
|
||||
| Click | [Callback](#回调) | 单击菜单时的回调函数 |
|
||||
| Role | string | 定义此菜单项的[角色](#角色)。暂时只支持 Mac |
|
||||
|
||||
### 加速器
|
||||
|
||||
@ -225,3 +226,18 @@ type CallbackData struct {
|
||||
```
|
||||
|
||||
给函数一个`CallbackData`结构体,它指示哪个菜单项触发了回调。这在使用可能共享回调的单选菜单组时很有用。
|
||||
|
||||
### 角色
|
||||
|
||||
:::info 角色
|
||||
|
||||
目前仅 Mac 支持角色。
|
||||
|
||||
:::
|
||||
|
||||
一个菜单项可能有一个角色,它本质上是一个预定义的菜单项。我们目前支持以下角色:
|
||||
|
||||
| 角色 | 描述 |
|
||||
| ------------ | ----------------------------------------------------- |
|
||||
| AppMenuRole | 标准的 Mac 应用程序菜单。可以使用`menu.AppMenu()`创建 |
|
||||
| EditMenuRole | 标准的 Mac 编辑菜单。可以使用`menu.EditMenu()`创建 |
|
||||
|
@ -34,7 +34,8 @@ func main() {
|
||||
LogLevel: logger.DEBUG,
|
||||
OnStartup: app.startup,
|
||||
OnDomReady: app.domready,
|
||||
OnShutdown: app.shutdown,
|
||||
OnShutdown: app.shutdown,,
|
||||
WindowStartState: options.Maximised,
|
||||
Bind: []interface{}{
|
||||
app,
|
||||
},
|
||||
@ -43,6 +44,24 @@ func main() {
|
||||
WindowIsTranslucent: false,
|
||||
DisableWindowIcon: false,
|
||||
},
|
||||
Mac: &mac.Options{
|
||||
TitleBar: &mac.TitleBar{
|
||||
TitlebarAppearsTransparent: true,
|
||||
HideTitle: false,
|
||||
HideTitleBar: false,
|
||||
FullSizeContent: false,
|
||||
UseToolbar: false,
|
||||
HideToolbarSeparator: true,
|
||||
},
|
||||
Appearance: mac.NSAppearanceNameDarkAqua,
|
||||
WebviewIsTransparent: true,
|
||||
WindowIsTranslucent: false,
|
||||
About: &mac.AboutInfo{
|
||||
Title: "My Application",
|
||||
Message: "© 2021 Me",
|
||||
Icon: icon,
|
||||
},
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
@ -81,7 +100,7 @@ func main() {
|
||||
|
||||
类型:bool
|
||||
|
||||
默认情况下,主窗口可调整大小。将此设置为 true 将使其保持固定大小。
|
||||
默认情况下,主窗口可调整大小。将此设置为 `true` 将使其保持固定大小。
|
||||
|
||||
### 全屏
|
||||
|
||||
@ -89,7 +108,7 @@ func main() {
|
||||
|
||||
类型:bool
|
||||
|
||||
将此设置为 true 将在启动时使窗口全屏。
|
||||
将此设置为 `true` 将在启动时使窗口全屏。
|
||||
|
||||
### 无边框
|
||||
|
||||
@ -97,7 +116,7 @@ func main() {
|
||||
|
||||
类型:bool
|
||||
|
||||
设置为 时 true,窗口将没有边框或标题栏。另请参阅[无边框窗口](/docs/guides/frameless)。
|
||||
设置为`true`时,窗口将没有边框或标题栏。另请参阅[无边框窗口](/docs/guides/frameless)。
|
||||
|
||||
### 最小宽度
|
||||
|
||||
@ -137,7 +156,7 @@ func main() {
|
||||
|
||||
类型:bool
|
||||
|
||||
设置为 时`true`,应用程序将被隐藏,直到调用[显示窗口](/docs/reference/runtime/window#显示窗口)。
|
||||
设置为`true`时,应用程序将被隐藏,直到调用[显示窗口](/docs/reference/runtime/window#显示窗口)。
|
||||
|
||||
### 关闭时隐藏窗口
|
||||
|
||||
@ -179,11 +198,15 @@ func main() {
|
||||
|
||||
应用程序要使用的菜单。[菜单参考](/docs/reference/runtime/menu)中有关菜单的更多详细信息。
|
||||
|
||||
注意:在 Mac 上,如果未指定菜单,则将创建默认菜单。
|
||||
|
||||
### 日志
|
||||
|
||||
名称:Logger
|
||||
|
||||
类型:logger.Logger 默认值:Logger to Stdout
|
||||
类型:logger.Logger
|
||||
|
||||
默认值:Logger to Stdout
|
||||
|
||||
应用程序要使用的记录器。有关日志记录的更多详细信息,请参阅[日志参考](/docs/reference/runtime/log)。
|
||||
|
||||
@ -191,7 +214,9 @@ func main() {
|
||||
|
||||
名称:LogLevel
|
||||
|
||||
类型:logger.LogLevel 默认值:Info 在开发模式下,Error 在生产模式下
|
||||
类型:logger.LogLevel
|
||||
|
||||
默认值:在开发模式下是`Info`,在生产模式下是`Error`。
|
||||
|
||||
默认日志级别。有关日志记录的更多详细信息,请参阅[设置日志等级](/docs/reference/runtime/log#设置日志等级)。
|
||||
|
||||
@ -219,6 +244,20 @@ func main() {
|
||||
|
||||
在前端被销毁之后,就在应用程序终止之前,调用此回调。它给出了应用程序上下文。
|
||||
|
||||
### 窗口启动状态
|
||||
|
||||
名称:WindowStartState
|
||||
|
||||
类型: options.WindowStartState
|
||||
|
||||
定义窗口在启动时应如何呈现。
|
||||
|
||||
| 值 | Win | Mac |
|
||||
| ---------- | --- | --- |
|
||||
| Fullscreen | ✅ | ✅ |
|
||||
| Maximised | ✅ | ✅ |
|
||||
| Minimised | ✅ | |
|
||||
|
||||
### 绑定
|
||||
|
||||
名称:Bind
|
||||
@ -243,7 +282,7 @@ func main() {
|
||||
|
||||
类型:bool
|
||||
|
||||
当 alpha 值为 0 时,设置为 true 将使 WebView 背景透明。这意味着如果你使用`rgba(0,0,0,0)`,主窗口将显示。通常与[窗口半透明](#窗口半透明)结合使用以制作冰霜效果的应用程序。
|
||||
设置为 `true` 时将使 WebView 背景透明。这意味着如果你使用`rgba(0,0,0,0)`,主窗口将显示。通常与[窗口半透明](#窗口半透明)结合使用以制作冰霜效果的应用程序。
|
||||
|
||||
### 窗口半透明
|
||||
|
||||
@ -251,7 +290,7 @@ func main() {
|
||||
|
||||
类型:bool
|
||||
|
||||
将此设置为 true 将使窗口半透明。通常与[网页透明](#网页透明) 结合使用以制作冰霜效果的应用程序。
|
||||
将此设置为 `true` 将使窗口半透明。通常与[网页透明](#网页透明) 结合使用以制作冰霜效果的应用程序。
|
||||
|
||||
### 禁用窗口图标
|
||||
|
||||
@ -259,4 +298,167 @@ func main() {
|
||||
|
||||
类型:bool
|
||||
|
||||
将此设置为 true 将删除标题栏左上角的图标。
|
||||
将此设置为 `true` 将删除标题栏左上角的图标。
|
||||
|
||||
## Mac 特定选项
|
||||
|
||||
### 标题栏
|
||||
|
||||
Name: TitleBar
|
||||
|
||||
Type: [\*mac.TitleBar](#标题栏结构)
|
||||
|
||||
TitleBar 结构提供了配置标题栏外观的能力。
|
||||
|
||||
### 外观
|
||||
|
||||
Name: Appearance
|
||||
|
||||
Type: [AppearanceType](#外观类型)
|
||||
|
||||
Appearance 用于根据 Apple 的 [NSAppearance](https://developer.apple.com/documentation/appkit/nsappearancename?language=objc) 名称设置应用程序的样式。
|
||||
|
||||
### 网页透明
|
||||
|
||||
Name: WebviewIsTransparent
|
||||
|
||||
Type: bool
|
||||
|
||||
设置为 `true` 时将使 WebView 背景透明。这意味着如果你使用`rgba(0,0,0,0)`,主窗口将显示。通常与[窗口半透明](#窗口半透明)结合使用以制作冰霜效果的应用程序。
|
||||
|
||||
### 窗口半透明
|
||||
|
||||
Name: WindowIsTranslucent
|
||||
|
||||
Type: bool
|
||||
|
||||
将此设置为 `true` 将使窗口半透明。通常与[网页透明](#网页透明) 结合使用以制作冰霜效果的应用程序。
|
||||
|
||||
### 关于
|
||||
|
||||
Name: About
|
||||
|
||||
Type: [About](#关于结构)
|
||||
|
||||
此配置允许您为“AppMenu” role 创建的应用程序菜单中的“关于”菜单项设置标题、消息和图标。
|
||||
|
||||
#### 标题栏结构
|
||||
|
||||
可以使用 TitleBar 选项自定义应用程序的标题栏:
|
||||
|
||||
```go
|
||||
type TitleBar struct {
|
||||
TitlebarAppearsTransparent bool
|
||||
HideTitle bool
|
||||
HideTitleBar bool
|
||||
FullSizeContent bool
|
||||
UseToolbar bool
|
||||
HideToolbarSeparator bool
|
||||
}
|
||||
```
|
||||
|
||||
| 名称 | 描述 |
|
||||
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| TitlebarAppearsTransparent | 使标题栏透明。[Apple Docs](https://developer.apple.com/documentation/appkit/nswindow/1419167-titlebarappearstransparent?language=objc) |
|
||||
| HideTitle | 隐藏窗口的标题。[Apple Docs](https://developer.apple.com/documentation/appkit/nswindowtitlevisibility?language=objc) |
|
||||
| HideTitleBar | 从样式掩码中移除 [NSWindowStyleMaskTitled](https://developer.apple.com/documentation/appkit/nswindowstylemask/nswindowstylemasktitled/)。 |
|
||||
| FullSizeContent | 使 webview 填满整个窗口。[Apple Docs](https://developer.apple.com/documentation/appkit/nswindowstylemask/nswindowstylemaskfullsizecontentview) |
|
||||
| UseToolbar | 向窗口添加默认工具栏。 [Apple Docs](https://developer.apple.com/documentation/appkit/nstoolbar?language=objc) |
|
||||
| HideToolbarSeparator | 删除工具栏下方的线条。 [Apple Docs](https://developer.apple.com/documentation/appkit/nstoolbar/1516954-showsbaselineseparator?language=objc) |
|
||||
|
||||
预设的标题栏设置可用:
|
||||
|
||||
| 设置 | 示例 |
|
||||
| --------------------------- | --------------------------------------------- |
|
||||
| `mac.TitleBarDefault()` |  |
|
||||
| `mac.TitleBarHidden()` |  |
|
||||
| `mac.TitleBarHiddenInset()` |  |
|
||||
|
||||
示例:
|
||||
|
||||
```go
|
||||
Mac: &mac.Options{
|
||||
TitleBar: mac.TitleBarHiddenInset(),
|
||||
}
|
||||
```
|
||||
|
||||
单击[此处](https://github.com/lukakerr/NSWindowStyles)获取有关自定义标题栏的一些灵感。
|
||||
|
||||
#### 外观类型
|
||||
|
||||
您可以指定应用程序的[外观](https://developer.apple.com/documentation/appkit/nsappearance?language=objc)。
|
||||
|
||||
| 值 | 描述 |
|
||||
| ----------------------------------------------------- | ------------------------------ |
|
||||
| DefaultAppearance | 使用默认系统值 |
|
||||
| NSAppearanceNameAqua | 标准日间系统外观 |
|
||||
| NSAppearanceNameDarkAqua | 标准黑夜系统外观 |
|
||||
| NSAppearanceNameVibrantLight | 轻盈灵动的外观 |
|
||||
| NSAppearanceNameAccessibilityHighContrastAqua | 标准白天系统外观的高对比度版本 |
|
||||
| NSAppearanceNameAccessibilityHighContrastDarkAqua | 标准黑夜系统外观的高对比度版本 |
|
||||
| NSAppearanceNameAccessibilityHighContrastVibrantLight | 轻盈灵动外观的高对比度版本 |
|
||||
| NSAppearanceNameAccessibilityHighContrastVibrantDark | 深色活力外观的高对比度版本 |
|
||||
|
||||
示例:
|
||||
|
||||
```go
|
||||
Mac: &mac.Options{
|
||||
Appearance: mac.NSAppearanceNameDarkAqua,
|
||||
}
|
||||
```
|
||||
|
||||
#### 关于结构
|
||||
|
||||
```go
|
||||
type AboutInfo struct {
|
||||
Title string
|
||||
Message string
|
||||
Icon []byte
|
||||
}
|
||||
```
|
||||
|
||||
如果提供了这些设置,“关于”菜单项将出现在应用程序菜单中(使用`AppMenu` role 时)。建议这样配置:
|
||||
|
||||
```go
|
||||
//go:embed build/appicon.png
|
||||
var icon []byte
|
||||
|
||||
func main() {
|
||||
err := wails.Run(&options.App{
|
||||
...
|
||||
Mac: &mac.Options{
|
||||
About: &mac.AboutInfo{
|
||||
Title: "My Application",
|
||||
Message: "© 2021 Me",
|
||||
Icon: icon,
|
||||
},
|
||||
},
|
||||
})
|
||||
```
|
||||
|
||||
“关于”菜单项将出现在应用程序菜单中:
|
||||
|
||||
<div class="text--center">
|
||||
<img
|
||||
src="/img/reference/about-menu.png"
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
|
||||
单击后,将打开一个关于消息框:
|
||||
|
||||
<div class="text--center">
|
||||
<img
|
||||
src="/img/reference/about-dialog.png"
|
||||
width="40%"
|
||||
style={{
|
||||
"box-shadow":
|
||||
"rgb(255 255 255 / 20%) 0px 4px 8px 0px, rgb(104 104 104) 0px 6px 20px 0px",
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
<br />
|
||||
|
@ -17,10 +17,11 @@ sidebar_position: 5
|
||||
"version": "[项目配置版本]",
|
||||
"outputfilename": "[二进制文件的名称]",
|
||||
"debounceMS": 100, // 在检测到资源更改时,开发服务器等待重新加载的时间
|
||||
"devserverurl": "[用于服务本地资源的开发服务器URL。默认:http://localhost:34115]"
|
||||
"devserverurl": "[用于服务本地资源的开发服务器URL。默认:http://localhost:34115]",
|
||||
"appargs": "[在dev模式下以shell样式传递给应用程序的参数]"
|
||||
}
|
||||
```
|
||||
|
||||
该文件将在运行`wails build`或`wails dev`时,由 Wails CLI 读取。
|
||||
|
||||
`wails build/dev`命令中的`assetdir`,`wailsjsdir`,`debounceMS`和`devserverurl`标志将覆盖项目配置并作为后续运行的默认值。
|
||||
`wails build/dev`命令中的`assetdir`、`wailsjsdir`、`debounceMS`和`devserverurl`标志将覆盖项目配置并作为后续运行的默认值。
|
||||
|
@ -9,4 +9,10 @@ sidebar_position: 1
|
||||
|
||||
Go 运行时可通过导入`github.com/wailsapp/wails/v2/pkg/runtime`. 此包中的所有方法都将 context 作为第一个参数。这个 context 可以从[应用启动回调](/docs/reference/options#应用启动回调) 或[前端 Dom 加载完成回调](/docs/reference/options#前端-dom-加载完成回调)回调中获得。
|
||||
|
||||
:::info 笔记
|
||||
|
||||
虽然上下文将提供给[应用启动回调](/docs/reference/options#应用启动回调)方法,但不能保证运行时将在此方法中工作,因为窗口正在不同的线程中初始化。如果您希望在启动时调用运行时方法,请使用[前端 Dom 加载完成回调](/docs/reference/options#前端-dom-加载完成回调)方法。
|
||||
|
||||
:::
|
||||
|
||||
Javascript 库可通过`window.runtime`提供给前端。使用 dev 模式时会生成一个运行时包,该包为运行时提供 Typescript 声明。这应该位于您的前端目录中的`wailsjs`目录中。
|
||||
|
Loading…
Reference in New Issue
Block a user