您是否想过如何使用 Flutter 添加对 Web、Windows、macOS 或 Linux 等所有平台的支持?以下是有关在 Flutter 应用程序中添加对所有这些平台的支持的过程的完整指南。
据我们所知,随着Flutter 2.0版本的发布,他们已经在稳定渠道中发布了桌面和 Web 支持,因此现在我们可以通过 Flutter 的稳定渠道为这些平台创建(或添加支持)应用程序。
最新的flutter平台支持的情况,请参考:docs.flutter.dev/reference/s...
在我们开始这个过程之前,让我们看看我们应该首先安装哪些基本软件要求。
- Flutter SDK
- 任何支持 Flutter、Android Studio 、VS Code 或 Intelij IDEA 的 IDE 最适合您。在您决定使用的 IDE 中安装 Flutter 和 Dart 插件
- Chrome 浏览器,我们需要它来运行和调试网络应用程序
- VS Code (适用 App,web 等平台开发)
- Visual Studio (仅适用于 Windows 桌面开发)
- Xcode 和 CocoaPods(适用于 macOS,iOS 等苹果设备的开发)
- Clang、CMake、GTK 开发头文件、Ninja build、pkg-config (适用于 Linux 桌面开发)
添加web支持
要向现有应用程序添加 Web 支持,您需要在终端中执行以下命令。
flutter config --enable-web
它将在 flutter 配置设置中启用 Flutter for web 标志。flutter create .
它将在您的项目目录中创建 web 文件夹,并向其中添加其他所需的文件。(别忘了最后加上 . )
使用 Flutter 2.0(稳定Channel)在新应用程序中添加 Web 支持更加容易,因为它会自动在新项目中添加对 Web 的支持。如果您在新应用程序中使用任何较低的 flutter 版本,那么您必须手动运行上述命令。
添加desktop支持
要记住的关键点
要编译 desktop 应用程序,必须在目标平台上构建它:在 Windows 上构建 Windows 应用程序,在 macOS 上构建 macOS 应用程序,在 Linux 上构建 Linux 应用程序。
要首先添加桌面支持,我们需要启用一些特定于我们目标平台的标志,为此,我们需要在终端中执行以下命令。
flutter config --enable-<platform>-desktop
这里的 是桌面平台,如 windows、macos、linux。所以理想的命令是这样的:
flutter config --enable-linux-desktop
flutter config --enable-macos-desktop
flutter config --enable-windows-desktop (This is only for Win32 based desktop support)
目前它仅在稳定通道中支持基于 Win32 的 Windows 应用程序,要添加对基于 UWP 的桌面应用程序的支持,您必须切换到开发通道,然后升级 flutter 并在配置中启用 uwp-desktop 标志。为此,请从终端执行以下命令。
flutter channel dev
flutter upgrade
flutter config --enable-windows-uwp-desktop
这里需要注意的一件事是,启用桌面支持后,您需要重新启动当前打开的 IDE。
一旦执行
flutter config --enable-<platform>-desktop
命令,此设置将在配置中保持不变,直到您重置配置,因此您不需要一次又一次地执行它。
一旦安装了所需的软件/库并启用了桌面支持标志,在新项目中添加桌面支持就会变得更加容易,您只需要创建新的 flutter 项目,它就会在您的项目中创建所有必需的目录和文件。
添加平台到已经存在的App
以web为例
要将 Web 支持添加到使用早期版本的 Flutter 创建的现有项目,请从项目的顶级目录运行以下命令:
shell
flutter create --platforms=web .
同时加多个平台,平台之间使用 , 连接,例如同时添加ios和macos平台
shell
flutter create --platforms=macos,ios .
其他可选平台可选项:
ios
,android
,macos
,linux
,windows
如果出现添加失败,例如类似下面格式的内容
css
Ambiguous organization in existing files: {com.app.android.fluttermodule,com.app.android.flutterModule}. The --org command line argument must be
specified to recreate project.
执行下面命令, 参考:stackoverflow.com/questions/5...
shell
flutter create --org package_name .
为特定平台运行应用程序
您可以通过两种不同的方式在您所需的平台上运行您的应用程序。
使用命令行
要使用命令行运行应用程序,您可以根据所需的平台执行这些命令之一。
flutter run -d chrome
flutter run -d macos
flutter run -d linux
flutter run -d windows
从 IDE 使用 Flutter 设备选择器
您可以使用 Flutter Device Selector 选择任何连接的设备,然后按运行按钮,如下图所示。
演示应用程序
我创建了简单的演示应用程序来演示结果输出在多个平台上的外观。在此演示应用程序中,我尝试实现电子商务应用程序的 UI,该应用程序在每个平台上看起来都非常相似。请看下面的屏幕截图。
iOS(iPhone 14模拟器)App
Web App(Chrome)
Desktop App (macOS)
您可以从 Github 上提供的以下示例应用程序查看此示例的代码。
https://github.com/wangruofeng/FlutterMultiPlatformSample
您还可以从下面的官方文档中了解有关在 flutter 应用程序中添加桌面或 Web 支持的更多信息。
感谢您的阅读🐥!!