来自基于js / cordova的跨平台宇宙,我最近正在挖掘.所以我想知道直接在Flutter中使用各种js库的选项.更具体我感兴趣的是在Flutter中使用openlayers库创建一个多功能的地图视图,其中包含各种绘图和编辑功能.所以我想知道包含它的选项有哪些.
到目前为止,我看到两种主要方式:
>使用webview:
即使没有本地webview小部件,但仍有一个插件(https://github.com/dart-flitter/flutter_webview_plugin).我在这里看到的主要优点是“按原样”使用openlayers库,但插件处于早期状态,我无法在webview中看到在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画布. mapjs.dart包也没有任何提示如何将它包含在一个颤动的应用程序中.我还看到有一个传单插件(https://github.com/apptreesoftware/flutter_map),它正在创建自己的小部件,但是它们似乎是手工重写代码(?),这对于具有20.000行代码的开放式代码并不是真正的选项atm.
我知道这不是这个网站最好的问题格式,但我希望有人有一些建议或提示,从哪里开始或如何实现这一点,特别是第二个选项 – 第一个更直接.或者,如果你能想到第三种选择,请继续,我很感激任何线索.
解决方法:
Dart仅针对浏览器应用程序编译为JS,对于Flutter,它编译为本机机器代码.
convert js code direcly to dart, using package js
包JS不转换JS,它只是为JS函数创建代理,以便能够从Dart调用它们,但这也只在Dart Web应用程序中支持.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。