nip*_*dha 6 flutter flutter-web
我注意到 Flutter Web(仍处于测试阶段)不支持 、 、 等Flutter插件path_provider。任何人都可以提供一些有关如何在他们支持的平台上使用此插件的见解,并防止他们在不支持的平台上破坏应用程序吗?firebase_messaginggoogle_fonts
您可以通过条件导入来实现此目的。这个答案提供了一个很好的方法来做到这一点。以下是该帖子的要点:
核心思想如下。
- 创建一个抽象类来定义您通常需要使用的方法。
- 创建特定于该抽象类的实现
web和android扩展该抽象类的依赖项。- 创建一个存根,它公开一个方法来返回此抽象实现的实例。这只是为了让 dart 分析工具满意。
- 在抽象类中导入此存根文件以及特定于
mobile和的条件导入web。然后在其工厂构造函数中返回具体实现的实例。如果编写正确,这将通过条件导入自动处理。
此方法允许您根据平台进行这些导入,并适用于可能不支持所有可能的 flutter 平台的所有包(例如 dart:html、dart:js、dart:js_util、dart:io)。这似乎是目前使用相同代码库处理不同平台的最佳方法。
据我所知,您不能有条件地排除插件pubspec.yaml(我当然可能是错的),尽管对于我之前提到的条件导入来说这不是必需的。
当您为 Web 构建时,任何属于您使用的插件一部分的本机 Android 或 iOS 代码都不会包含在内。Android 和 iOS 的情况完全相同。为 Android 构建时,构建应用程序时根本不会考虑 iOS 代码。构建 flutter 应用程序仅编译 dart 代码。除了构建本机应用程序之外,它不会对本机代码执行任何特殊操作。
| 归档时间: |
|
| 查看次数: |
1805 次 |
| 最近记录: |