在 Flutter 应用程序中添加对多平台的支持

您是否想过如何使用 Flutter 添加对 Web、Windows、macOS 或 Linux 等所有平台的支持?以下是有关在 Flutter 应用程序中添加对所有这些平台的支持的过程的完整指南。

据我们所知,随着Flutter 2.0版本的发布,他们已经在稳定渠道中发布了桌面和 Web 支持,因此现在我们可以通过 Flutter 的稳定渠道为这些平台创建(或添加支持)应用程序。

最新的flutter平台支持的情况,请参考:docs.flutter.dev/reference/s...

在我们开始这个过程之前,让我们看看我们应该首先安装哪些基本软件要求。

  1. Flutter SDK
  2. 任何支持 Flutter、Android StudioVS CodeIntelij IDEA 的 IDE 最适合您。在您决定使用的 IDE 中安装 Flutter 和 Dart 插件
  3. Chrome 浏览器,我们需要它来运行和调试网络应用程序
  4. VS Code (适用 App,web 等平台开发)
  5. Visual Studio (仅适用于 Windows 桌面开发)
  6. XcodeCocoaPods(适用于 macOS,iOS 等苹果设备的开发)
  7. ClangCMakeGTK 开发头文件Ninja buildpkg-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 支持的更多信息。

感谢您的阅读🐥!!

相关推荐
火柴就是我4 小时前
flutter 之真手势冲突处理
android·flutter
Speed1235 小时前
`mockito` 的核心“打桩”规则
flutter·dart
法的空间5 小时前
Flutter JsonToDart 支持 JsonSchema
android·flutter·ios
恋猫de小郭5 小时前
Android 将强制应用使用主题图标,你怎么看?
android·前端·flutter
玲珑Felone6 小时前
从flutter源码看其渲染机制
android·flutter
ALLIN1 天前
Flutter 三种方式实现页面切换后保持原页面状态
flutter
Dabei1 天前
Flutter 国际化
flutter
Dabei1 天前
Flutter MQTT 通信文档
flutter
Dabei1 天前
Flutter 中实现 TCP 通信
flutter
孤鸿玉1 天前
ios flutter_echarts 不在当前屏幕 白屏修复
flutter