首页 文章

Flutter和Openlayers - 包括颤动的js库

提问于
浏览
1

来自基于js / cordova的跨平台宇宙,我最近正在挖掘 . 所以我想知道直接在flutter中使用各种js库的选项 . 更具体我感兴趣的是在flutter中使用openlayers库创建一个多功能的 Map 视图,其中包含各种绘图和编辑功能 . 所以我想知道包含它的选项有哪些 .

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

  • 使用webview:即使没有本地webview小部件,但有一个插件(https://github.com/dart-flitter/flutter_webview_plugin) . 我在这里看到的主要优点是使用openlayers库"as it is",但插件处于早期状态,我还没有看到在webview中 Build flutter和js函数之间的通信的方法 . 更进一步(这只是我的假设)使用webview可能比用dart代码创建一个合适的小部件要慢 .

  • 创建一个自定义小部件:我已经看到有方法可以将js代码直接转换为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 lib转换为dart . 然而,主要的问题是将它整合到颤动,因为openlayers正在使用html5画布,如果我也看到有一个传单插件(https://github.com/apptreesoftware/flutter_map)正在创建自己的小部件,但他们似乎手工重写代码(? ),这对于拥有20.000行代码的开放者来说并不是真正的选择 .

我知道这不是这个网站最好的问题格式,但我希望有人有一些建议或提示,从哪里开始或如何实现这一点,特别是第二个选项 - 第一个更直接 . 或者,如果你能想到第三种选择,请继续,我很感激任何线索 .

1 回答

  • 2

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

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

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

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

相关问题