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,然后 IDE 就能检测到新的设备了。

创建和运行

#

创建一个桌面支持的新项目,与在其他平台 创建新的 Flutter 项目 没什么不同的地方。

一旦配置好了桌面支持的环境,你可以通过 IDE 或命令行创建和运行桌面程序。

使用 IDE

#

在你配置好桌面支持的环境后,记得重启已经在运行的 IDE。

在你的 IDE 中创建新应用时,它会自动创建 iOS、 Android 和应用的桌面版本。从设备的下拉选项中,选择 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

创建 release 版本的应用

#

要生成 release 版本,可以运行以下命令之一:

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

为已有的应用添加桌面支持

#

想为已有的 Flutter 项目添加桌面支持,你可以从项目根目录在控制台运行下面命令:

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

这将会在你的 Flutter 桌面项目中添加必要的已有文件和文件夹。如果需要只添加特定平台桌面端的支持,修改 platforms 的值为你想要支持的平台即可。

插件支持

#

Flutter 在桌面支持中使用和创建插件。使用支持桌面端的插件,可以根据文档 在 Flutter 里使用 Packages 中描述的内容进行操作。 Flutter 会像在其他平台中一样的操作,自动将需要的原生平台代码加入到你的工程中。

编写一个插件

#

当你开始构建自己的插件时,你需要记住联合。联合是定义几个不同包的能力,其中每个包都针对不同的平台,将它们合并到一个插件中,这样方便开发人员使用。比如,Windows 实现的 url_launcher,实际是通过 url_launcher_windows 完成的,但是 Flutter 开发者可以在 pubspec.yaml 中,简单地添加 url_launcher 包作为依赖,在构建过程中会基于目标平台引入正确的实现。联合非常方便,因为具有不同专长的不同团队,可以为不同的平台构建相应的插件实现。与原插件作者协调之后,你可以为 pub.dev 上任何联合插件添加新的平台实现。

想要了解更多信息,包括关于已支持的插件信息,请参阅以下资源:

Codelab 和 Flutter 文档

#

构建一个 Flutter 桌面程序
这个 codelab 会引导你通过使用 Flutter,来构建一个集成 GitHub GraphQL API 的桌面应用。

你可以运行下面的桌面应用案例,也可以下载并阅读源代码,以了解更多关于 Flutter 桌面支持的信息。

Wonderous 应用 在线访问源代码仓库地址
这是一款使用 Flutter 创建的应用,它拥有极具表现力的用户界面。 Wonderous 专注于提供可访问的高质量用户体验,同时包含引人入胜的交互体验以及新颖的动画效果。如果你想要将 Wonderous 作为桌面应用运行,你可以克隆该项目,并按照 README 中的说明进行体验。

Flokk 官宣文章源代码仓库地址
一款集成了 GitHub 和 Twitter 的谷歌联系人管理器应用。可以从你的 Google 账户同步数据,导入联系人信息,并管理它们。

图片搜索应用
使用支持桌面端的插件构建的一个桌面应用案例。