Flutter 和 Openlayers - 包括 flutter 中的 js 库

Chr*_*ris 6 javascript openlayers dart flutter

来自基于 js/cordova 的跨平台领域,我最近正在研究 flutter。所以我想知道在 flutter 中直接使用各种 js 库的选项。更具体地说,我有兴趣使用 flutter 中的 openlayers 库来创建具有各种绘图和编辑功能的多功能地图视图。所以我想知道有哪些选项可以包含它。

到目前为止,我看到两种主要方式:

  1. 使用 webview:即使在 flutter 中还没有原生 webview 小部件,也有一个插件(https://github.com/dart-flitter/flutter_webview_plugin)。我在这里看到的主要优点是“按原样”使用 openlayers 库,但是该插件还处于早期状态,我还看不到在 webview 中建立 flutter 和 js 函数之间通信的方法。此外(这只是我的假设)使用 webview 可能比使用 dart 代码创建适当的小部件慢。

  2. 创建自定义小部件:我已经看到有一些方法可以使用包 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 库自动转换为 dart。然而,主要问题是将其集成到颤振中,因为如果我是对的,openlayers 正在使用 html5 画布。此外,chartjs.dart 包没有给出任何提示如何将其包含在 flutter 应用程序中。我还看到有一个传单插件(https://github.com/apptreesoftware/flutter_map) 正在创建自己的小部件,但是他们似乎手动重写了代码 (?),这适用于具有 20.000 行代码的 openlyers,这并不是真正的选项 atm。

我知道这不是本网站的最佳问题格式,但我希望有人对从哪里开始或如何实施这一问题提出一些建议或提示,尤其是对于第二个选项 - 第一个更直接。或者,如果您能想到第三种选择,请继续,我很感激您提供任何线索。

Gün*_*uer 4

在 Flutter 中使用 JS 的唯一方法是使用 WebView。

Dart 仅针对浏览器应用程序编译为 JS,对于 Flutter,它编译为本机机器代码。

使用 js 包将 js 代码直接转换为 dart

JS 包不会转换 JS,它只是为 JS 函数创建代理以便能够从 Dart 调用它们,但这也仅在 Dart Web 应用程序中受支持。