【问题标题】:Using flutter mobile packages in flutter web在 Flutter Web 中使用 Flutter 移动包
【发布时间】:2019-10-28 13:25:39
【问题描述】:

我正在使用flutter web,我想使用一些可在web 版本的flutter 中用于移动设备的包。 Flutter web 的 pubspec 看起来与 flutter mobile 的 pubspec 有点不同,但这不是真正的问题。我担心的是是否可以将可用于移动设备的软件包添加到网络中。如果是,这样做的正确方法是什么?

【问题讨论】:

    标签: web flutter cross-platform


    【解决方案1】:

    目前(截至 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 下。

    【讨论】:

    • 这还不错,您还可以使用引用 Flutter 框架的库,这些库是为 flutter_web 重新打包的。就像provider 被分叉了github.com/rrousselGit/provider/issues/82。你只是不能使用插件atm。
    【解决方案2】:

    是的,您可以通过从 github 获取源代码包并在包内的 lib 文件中获取代码并将其放入您的项目中,并通过将路径导入更改为来修复文件内部可能发生的错误: 导入“包:flutter_web/material.dart”; 并且可能需要进行更多更改。

    它将 100% 工作,非常简单:)

    【讨论】:

      猜你喜欢
      • 2020-02-25
      • 2020-05-12
      • 2019-10-25
      • 2020-03-21
      • 2019-10-09
      • 2021-08-15
      • 2020-09-06
      • 2023-01-25
      • 2021-06-12
      相关资源
      最近更新 更多