当前位置: 首页 > 面试题库 >

Flutter和Openlayers-在Flutter中包括js库

谢鸿
2023-03-14
问题内容

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

到目前为止,我看到了两种主要方法

  1. 使用webview:即使没有原生的webview小部件,在flutter中也有一个插件(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/)将js代码直接转换为dart的方法。dart-lang / js_facade_gen),就像使用chartjs库(https://github.com/google/chartjs.dart/)一样。如此类似,应该可以将openlayers lib自动转换为dart。然而,主要问题是将其集成到flutter中,因为如果我正确的话,openlayers正在使用html5 canvas。同样,chartjs.dart包也没有任何提示如何将其包含在flutter应用程序中。我也看到有一个传单插件(https://github.com/apptreesoftware/flutter_map)创建自己的窗口小部件,但是他们似乎要手动重写代码(?),这是针对具有20.000行代码的公开发布者,实际上不是atm选项。

我知道这不是该网站的最佳问题格式,尽管如此,我希望有人对从何处开始或如何实现这一点提供一些建议或提示,尤其是对于第二个选项-
第一个更直接。或者,如果您可以想到第三种选择,请继续。我非常感谢您提供的任何线索。


问题答案:

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

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

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

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



 类似资料:
  • 我想在flutter中使用local_auth插件,而且它需要Android生命周期,所以我安装了flutter_plugin_android_lifecycle,但是如果我尝试发布apk:error:package androidx.lifecycle不存在,我就会得到这个错误。我试了很多东西,但就是不能让它起作用。 ''C:\flutter.pub-cache\hosted\pub.dartl

  • 页面URL:[https://flutter.dev/docs/cookbook/design/package-fonts.html][1] 页面来源:[https://github . com/flutter/website/tree/master/src/docs/cookbook/design/package-fonts . MD][1] 问题描述: 我一直在尝试从Flutter.dev食谱

  • 我的项目从第一天开始就是VS代码,通过命令创建的。 当我在Android Studio中打开这个现有项目并右键单击文件夹以添加新的时,它没有弹出,而是给出了 为了缩小bug的范围,我另一个项目,在Android Studio中打开,bug被复制。 然后我在Android Studio的计数器应用程序中,然后右键单击,弹出。 我错过了AndroidStuido的设置吗?还是和之间有区别?

  • 我从git hub开始在我的android工作室下载flutter项目来学习,但是我只在这里AndroidManifest.xml文件中遇到这个问题,我还安装了所有依赖项。请解决我的问题。在这里输入图像描述 在此输入图像描述 在此输入图像描述

  • 假设<code>AudioPlayer|lib/audio_cache。dart仅适用于Android/iOS,我有条件地从dart文件中排除以下导入: 通过以下方式: 其中“dart:math”可以是任何fake_stub Dart文件。简而言之,这只是为Flutter中的移动设备导入了一个库。详情在此(感谢Alois Deniel!). 在Flutter-Web实现中隐藏特定于平台的代码的最佳

  • 我试图为一个使用蓝牙进行通信的应用程序启动一个flutter项目。为此,我使用了flutter blue。 不幸的是,当尝试(在Android设备上)运行我创建的第一个示例时,遇到了以下错误: 如果我在Android Studio上,我会知道如何升级Android minSdkVersion,但在一个扑朔迷离的项目(使用VSCode)上,我有点迷失了。 是否有可能用颤振来增加最小Sdk版本,以及如

  • 百度移动统计现已提供Flutter插件的支持,对于基于Flutter开发的APP,您可以按如下步骤使用百度移动统计SDK,完成基础的埋点统计和上报。 集成方法 在 Flutter 项目的 pubspec.yaml 文件中 dependencies 里面添加 baidu_mob_stat 依赖 dependencies: baidu_mob_stat: ^0.0.2 执行 flutter p

  • 百度移动统计现已提供Flutter插件的支持,对于基于Flutter开发的APP,您可以按如下步骤使用百度移动统计SDK,完成基础的埋点统计和上报。 集成方法 在 Flutter 项目的 pubspec.yaml 文件中 dependencies 里面添加 baidu_mob_stat 依赖 dependencies: baidu_mob_stat: ^0.0.2 执行 flutter p