来自基于 js/cordova 的跨平台宇宙,我最近正在深入研究 Flutter。所以我想知道直接在颤振中使用各种 js 库的选项。更具体 我对在颤振中使用 openlayers 库来创建具有各种绘图和编辑功能的多功能地图视图感兴趣。所以我想知道有什么选择可以包含它。
到目前为止,我看到了两种主要方式:
-
使用 Web 视图: 尽管在颤振中还没有本机 webview 小部件,但有一个插件(https://github.com/dart-flitter/flutter_webview_plugin(。我在这里看到的主要优点是"按原样"使用 openlayers 库,但是该插件处于早期状态,我还没有看到在 webview 中在 flutter 和 js 函数之间建立通信的方法。此外(这只是我的假设(使用 Web 视图可能比使用 dart 代码创建适当的小部件慢。
-
创建自定义小部件: 我已经看到有一些方法可以使用包 js (https://pub.dartlang.org/packages/js( 和键入 js_facade_gen (https://github.com/dart-lang/js_facade_gen( 的方法,就像使用 chartjs 库 (https://github.com/google/chartjs.dart/( 一样。因此,与此类似,应该可以自动将开放层库转换为飞镖。然而,主要问题是将其集成到颤振中,因为如果我是对的,openlayers 使用的是 html5 画布。此外,chartjs.dart包没有给出任何提示如何将其包含在颤振应用程序中。我还看到有一个传单插件 (https://github.com/apptreesoftware/flutter_map( 正在创建自己的小部件,但是他们似乎手动重写代码 (?(,这是针对具有 20.000 行代码的公开者,并不是真正的选项 atm。
我知道这不是这个网站最好的问题格式,但我希望有人对从哪里开始或如何实现这一点有一些建议或提示,特别是对于第二个选项 - 第一个更直接。或者,如果您能想到第三种选择,请继续,我很感激任何线索。
在 Flutter 中使用 JS 的唯一方法是使用 WebView。
Dart编译为JS仅用于浏览器应用程序,对于Flutter,它编译为本机机器代码。
使用包 JS 将 JS 代码转换为 dart。
包JS不转换JS,它只是为JS函数创建代理,以便能够从Dart调用它们,但这也仅在Dart Web应用程序中受支持。