Flutter 的桌面支持

Flutter 提供了编译原生 Windows、macOS 或 Linux 桌面应用程序的支持。Flutter 的桌面支持也扩展到了插件——你可以安装支持 Windows、macOS 或 Linux 平台的现有插件,或者创建自己的插件。

创建新项目

你可以使用以下步骤创建一个具有桌面支持的新项目。

设置桌面 DevTools

查阅目标桌面环境的指南

如果 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 中创建新应用程序,它会自动创建 iOS、Android、Web 和桌面版本的应用程序。从设备下拉菜单中,选择Windows(桌面)macOS(桌面)Linux(桌面),然后运行你的应用程序,查看它在桌面上启动。

从命令行

要创建包含桌面支持(以及移动和 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 会自动将必要的本机代码添加到你的项目中。

编写插件

当你开始构建自己的插件时,你会希望牢记联合。联合是指定义多个不同包的能力,每个包都针对不同的平台集,并汇总到一个插件中,以便开发人员轻松使用。例如,url_launcher 的 Windows 实现实际上是 url_launcher_windows,但是 Flutter 开发人员可以简单地将 url_launcher 包作为依赖项添加到其 pubspec.yaml 中,并且构建过程会根据目标平台引入正确的实现。联合很方便,因为具有不同专业知识的不同团队可以为不同的平台构建插件实现。只要你与原始插件作者协调这项工作,你就可以在 pub.dev 上为任何认可的联合插件添加新的平台实现。

有关更多信息,包括有关认可插件的信息,请参阅以下资源

示例和代码实验室

编写 Flutter 桌面应用程序
一个代码实验室,指导你构建一个桌面应用程序,该应用程序将 GitHub GraphQL API 与你的 Flutter 应用程序集成在一起。

你可以将以下示例作为桌面应用程序运行,还可以下载并检查源代码以了解有关 Flutter 桌面支持的更多信息。

Wonderous 应用程序 正在运行的应用程序存储库
一个使用 Flutter 创建高表现力用户界面的展示应用。Wonderous 专注于提供可访问和高质量的用户体验,同时包括引人入胜的互动和新颖的动画。要将 Wonderous 作为桌面应用运行,请克隆该项目并按照 自述文件 中提供的说明进行操作。
Flokk 公告博客文章代码库
一个与 GitHub 和 Twitter 集成的 Google 联系人管理器。它与您的 Google 帐户同步,导入您的联系人,并允许您管理它们。
照片搜索应用
一个作为桌面应用程序构建的示例应用程序,它使用桌面支持的插件。