在 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 支持的更多信息。

感谢您的阅读🐥!!

相关推荐
Python私教2 小时前
Flutter组件化开发
flutter
helloxmg3 小时前
鸿蒙harmonyos next flutter混合开发之开发FFI plugin
flutter
早起的年轻人17 小时前
Flutter String 按 ,。分割
flutter
helloxmg1 天前
鸿蒙harmonyos next flutter通信之MethodChannel获取设备信息
flutter
helloxmg1 天前
鸿蒙harmonyos next flutter混合开发之开发package
flutter·华为·harmonyos
lqj_本人2 天前
flutter_鸿蒙next_Dart基础②List
flutter
lqj_本人2 天前
flutter_鸿蒙next_Dart基础①字符串
flutter
The_tuber_sadness2 天前
【Flutter】- 基础语法
flutter
helloxmg2 天前
鸿蒙harmonyos next flutter通信之BasicMessageChannel获取app版本号
flutter