跨平台颤振——如何处理依赖?

时间:2021-03-15 23:26:37

标签: flutter

开发适用于移动设备和 PC 的 Flutter 应用程序,移动插件通常涵盖 iOS 和 Android,因此移动设备的代码库保持不变。现在有了 PC 和 Web,插件并非适用于所有平台。 在 dart.io 中有 Platform.isIOS 等,它们可以通过平台改变行为,但只能在运行时改变。 例如,如果插件在 Windows 上不存在,我需要在编译时有条件地导入插件。如相机、sqlite 数据库、文件缓存等。 有人说要让依赖于平台的代码进入小部件等,但我仍然需要导入 widget.dart 并且 it 将导入一个不存在的插件。因此存在编译错误,而修复该错误的唯一方法是使用不同版本的代码。在我的情况下,这将是大多数更改的 dart 文件。 有没有办法让我的代码共享但在某些平台上使用不同的插件?

1 个答案:

答案 0 :(得分:0)

您可以通过检查应用程序是否在网络上运行 如果(kIsWeb){ ... }

然后使用可在 Flutter Web 上运行的替代软件包。 对于 dart:io 有一个替代方案,它适用于所有平台,称为 Universal_io

https://pub.dev/packages/universal_io