【发布时间】:2019-10-28 13:25:39
【问题描述】:
我正在使用flutter web,我想使用一些可在web 版本的flutter 中用于移动设备的包。 Flutter web 的 pubspec 看起来与 flutter mobile 的 pubspec 有点不同,但这不是真正的问题。我担心的是是否可以将可用于移动设备的软件包添加到网络中。如果是,这样做的正确方法是什么?
【问题讨论】:
标签: web flutter cross-platform
我正在使用flutter web,我想使用一些可在web 版本的flutter 中用于移动设备的包。 Flutter web 的 pubspec 看起来与 flutter mobile 的 pubspec 有点不同,但这不是真正的问题。我担心的是是否可以将可用于移动设备的软件包添加到网络中。如果是,这样做的正确方法是什么?
【问题讨论】:
标签: web flutter cross-platform
目前(截至 2019 年 6 月)对于任何依赖于移动操作系统的软件包来说,这是不可能的。原因是移动端的插件使用平台通道与平台相关的 Android 和 iOS 代码实现进行通信,Android 和 iOS 用 java/kotlin 编写,iOS 用 objc/swift 编写。
这些包在网络上工作的唯一方法是,如果为它们编写了一个特定于网络的实现,我认为要么使用 emscripten 编译的库,要么更可能使用某种 javascript 桥来调用相关的浏览器 API .
来自flutter for web readme:
flutter_web 还没有插件系统。暂时,我们提供对 dart:html、dart:js、dart:svg、dart:indexed_db 和其他 Web 库的访问,让您可以访问绝大多数浏览器 API。但是,预计这些库将被不同的插件 API 替换。
对于任何 100% dart 代码的插件,您应该能够像在颤振中一样将其包含在您的 pubspec.yaml 中 - 在 dependencies 下。
【讨论】:
provider 被分叉了github.com/rrousselGit/provider/issues/82。你只是不能使用插件atm。