我有Flutter应用程序,它使用不同的webview插件为每个平台(移动的,网络,窗口)。
虽然我能够基于web
和mobile
的import
平台,但我不能为windows导入。
我已经尝试添加其他条件,如果它不是移动的或网络,但它是采取mobile
插件。
1.这就是我如何导入Web和移动的(工作)。
import 'package:eam_flutter/form/mobileui.dart'
if (dart.library.html) 'package:eam_flutter/form/webui.dart'
as multiPlatform;
1.这是我如何导入包的网页,移动的和窗口(不工作,它是显示移动webview异常,因为它不支持桌面).
import 'package:eam_flutter/form/windowui.dart'
if (dart.library.html) 'package:eam_flutter/form/webui.dart'
if (dart.library.io) 'package:eam_flutter/form/mobileui.dart'
as multiPlatform;
如何为windows指定条件导入?
5条答案
按热度按时间ykejflvf1#
对于发现这一点的其他人,请注意,接受的答案不是对所问问题的答案。对这个问题的回答是你不能。没有办法使用条件导入来获得移动的和桌面端之间的不同行为;查看Dart团队的评论。
oxosxuxt2#
因为window没有条件导入支持,因为它属于dart io。我有这个变通办法,发现它工作。
我最终为每个平台创建了不同的包导入文件。
qgelzfjb3#
也许我们不再需要有条件的进口。看看下面的代码:
如果未将
KEEP_FUNC1
环境变量指定为true
。package1
和Caculator1
类不会打包到 apk 或 ipa 中。更多细节,请看我在这里写的答案。
所以我们可以导入所有的包,并使用一个const环境值来决定要导入的包。摇动树木的机制足够智能,可以移除未使用的部分。
xpszyzbs4#
选中此example,您需要创建2个文件,一个用于Web,另一个用于操作系统,并在导入时使用条件
eufgjt7s5#
使用该包。