跳到主内容

Flutter 桌面端支持

关于 Flutter 桌面端应用支持的常规信息。

Flutter 支持编译为原生的 Windows、macOS 或 Linux 桌面应用。Flutter 的桌面端支持也延伸到了插件——你可以安装支持 Windows、macOS 或 Linux 平台的现有插件,也可以创建自己的插件。

创建新项目

#

你可以按照以下步骤创建一个支持桌面端的新项目。

设置桌面端开发工具

#

查阅目标桌面环境的指南

如果 flutter doctor 在你不想开发的平台上发现了问题或组件缺失,你可以忽略这些警告。或者,你也可以使用 flutter config 命令完全禁用该平台,例如:

flutter config --no-enable-ios

其他可用选项

  • --no-enable-windows-desktop
  • --no-enable-linux-desktop
  • --no-enable-macos-desktop
  • --no-enable-web
  • --no-enable-android
  • --no-enable-ios

启用桌面端支持后,请重启你的 IDE,以便它能够检测到新设备。

创建并运行

#

创建支持桌面端的新项目与创建其他平台的 Flutter 新项目没有区别。

一旦你为桌面端支持配置好了环境,你就可以在 IDE 或命令行中创建并运行桌面应用程序。

使用 IDE

#

在配置完桌面端支持环境后,如果 IDE 已经在运行,请确保重启 IDE。

在 IDE 中创建一个新应用,它会自动创建应用的 iOS、Android、Web 和桌面版本。在设备下拉菜单中,选择 windows (desktop)macOS (desktop)linux (desktop),然后运行你的应用程序即可在桌面上启动它。

使用命令行

#

要创建一个包含桌面端支持(除移动端和 Web 支持外)的新应用,请运行以下命令,并将 my_app 替换为你的项目名称:

flutter create my_app
cd my_app

要在命令行中启动你的应用程序,请在包根目录下输入以下命令之一:

C:\> flutter run -d windows
flutter run -d macos
flutter run -d linux

构建发布版应用

#

要生成发布版本,请运行以下命令之一:

PS C:\> flutter build windows
flutter build macos
flutter build linux

为现有 Flutter 应用添加桌面端支持

#

要为现有的 Flutter 项目添加桌面端支持,请在项目根目录的终端中运行以下命令:

flutter create --platforms=windows,macos,linux .

这将向你现有的 Flutter 项目中添加必要的桌面端文件和目录。如果只想添加特定的桌面平台,请修改 platforms 列表,使其仅包含你想要添加的平台。

插件支持

#

Flutter 桌面端支持使用和创建插件。要使用支持桌面端的插件,请按照使用包中的插件步骤进行操作。与任何其他平台一样,Flutter 会自动将必要的原生代码添加到你的项目中。

编写插件

#

当你开始构建自己的插件时,需要考虑“联邦插件”(Federation)的概念。联邦是定义多个不同包的能力,每个包针对不同的平台集,最终合并为一个单一的插件,以便开发者轻松使用。例如,url_launcher 的 Windows 实现实际上是 url_launcher_windows,但 Flutter 开发者只需将 url_launcher 包作为依赖项添加到他们的 pubspec.yaml 中,构建过程就会根据目标平台引入正确的实现。联邦非常方便,因为具有不同专业知识的不同团队可以构建不同平台的插件实现。只要你与原始插件作者协调,你就可以为 pub.dev 上的任何已认证的联邦插件添加新的平台实现。

欲了解更多信息(包括关于已认证插件的信息),请参阅以下资源:

示例

#

你可以运行以下示例作为桌面应用,也可以下载并查看源代码,以深入了解 Flutter 桌面端支持。

Wonderous 应用 运行应用 , 仓库

一个展示应用,使用 Flutter 创建了极具表现力的用户界面。Wonderous 专注于提供无障碍且高质量的用户体验,同时包含引人入胜的交互和新颖的动画。要将 Wonderous 作为桌面应用运行,请克隆项目并遵循 README 中提供的说明。

Flokk 官方博客公告 , 仓库

一个集成了 GitHub 和 Twitter 的 Google 联系人管理器。它与你的 Google 帐户同步,导入你的联系人,并允许你对其进行管理。

Photo Search(照片搜索)应用

一个作为桌面应用构建的示例程序,使用了支持桌面端的插件。