当某些包与某些平台不兼容时,如何在flutter中进行多平台开发?

ouz*_*ari 5 package web dart flutter

我正在尝试将现有的Flutter应用程序迁移到web。问题是某些软件包与 Web 不兼容(例如 path_provider 和许多其他软件包)。

\n

我真的不想构建一个全新的项目,那么有没有办法排除web的某些依赖项?无法\xe2\x80\x99 找不到任何关于此的内容。

\n

dav*_*for 3

是的,您可以编写特定于平台的代码,如果您的 flutter 应用程序旨在在两个以上平台上运行,您需要使用一些仅适用于一个平台的包。这也可以针对所有平台完成。

import 'package:flutter/foundation.dart' show kIsWeb;

if (kIsWeb) {
// Use packages that are compatible with Web.
 } else {
 // Use packages that aren't compatible with Web.
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。问题是,由于这些不兼容的包,我什至无法构建网络项目。我想要某种方式(如果可能的话)在构建网络时动态忽略(即不包含)它们在 pubspec.yaml 中? (2认同)