【发布时间】:2021-06-24 15:44:03
【问题描述】:
在网络上导入与本地导入很容易
import '../wrappers/platform/platform_none.dart'
if (dart.library.io) '../wrappers/platform/platform_io.dart'
if (dart.library.js) '../wrappers/platform/platform_web.dart';
如果我想根据我是在移动设备 (iOS/Android) 上还是在桌面 (Linux/MacOS/Windows) 上导入不同的包怎么办?
如果没有条件导入,你怎么能通过其他方式实现呢?
【问题讨论】:
-
您正在使用哪些特定的包,您希望在移动设备和桌面设备之间排除这些包?
-
move_to_background,将应用置于后台。当然,这对桌面没有意义,因此不受支持。
-
但这是否会给您带来问题,或者您只是专注于应用程序大小?
-
问题,我正在开发一个跨平台插件,所以因为条件导入而牺牲 3 个平台真是太可惜了。我确实找到了解决方法,但它基本上意味着复制插件的所有源文件-in 我正在使用,但这当然不是真正的解决方案。
-
插件的本机代码仅针对其适用的特定平台进行编译。到处都只会包含 Dart 代码,而您上面提到的插件只有一个 16 行的 Dart 文件,包括空格和 cmets。排除与否的区别可以忽略不计。
标签: flutter import flutter-dependencies flutter-desktop