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