在Flutter Web中使用Flutter移动软件包

时间:2019-06-13 22:11:14

标签: web flutter cross-platform

我正在使用Flutter Web,我想使用Flutter Web版本中可用于移动设备的某些软件包。 Flutter Web的发布规范看起来与Flutter Mobile的发布规范有所不同,但这并不是真正的问题。我担心的是,是否可以将适用于移动设备的软件包添加到网络中。如果是,那么正确的方法是什么?

2 个答案:

答案 0 :(得分:1)

对于任何依赖于移动操作系统的软件包,目前(截至2019年6月)这是不可能的。这样做的原因是,移动设备上的插件使用平台渠道与Android和iOS平台相关的代码实现进行通信,这些实现以Java / kotlin(对于android)或objc / swift(对于iOS)编写。

这些软件包在网络上运行的唯一方法是为它们编写特定于Web的实现,我认为它们将使用脚本编译的库或更可能使用某种JavaScript桥来调用相关的浏览器API

从网络readme扑朔迷离:

  

flutter_web还没有插件系统。暂时,我们提供对dart:html,dart:js,dart:svg,dart:indexed_db和其他网络库的访问,这些访问使您可以访问绝大多数浏览器API。但是,希望这些库将被其他插件API取代。


对于是100%飞镖代码的任何插件,您应该可以像在颤抖中一样在function formatLeg(leg) { return { other, stops: getLegStops(leg) }; }; function getLegStops(leg) { Promise.all(getLegStopRequests(leg)).then(([r1, r2]) => { /* do stuff here */ return [ /* with data */ ]; }); }; function getLegStopRequests(leg) { return [ url1, url2 ].map(async url => await axios.request({ url })); };下将其包含在pubspec.yaml中。

答案 1 :(得分:1)

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

它将100%正常工作,并且很容易:)

enter image description here