一尘不染

在Flutter中使用JS库

flutter

我正在尝试在Flutter应用程序中使用Ether
JS
。我知道它没有被直接支持,甚至现有的实现也没有得到很好的记录。

我可以在Android和iOS的Flutter应用程序中使用此库吗?也欢迎任何其他替代建议。

我已经尝试过js.dart,但无法弄清楚如何使用它。我什至不确定这是否是正确的选择。

我也尝试过Flutter
WebView插件

plugin.evalJavascript(
    'function add(a,b){return a+b;}add(2,3);'
).then((s) {
    print(s);
}

该函数正确地5作为响应返回。但是我不明白如何使用像这样的EtherJS库。

我是Flutter,Dart和JS的菜鸟。任何帮助将不胜感激。


阅读 1850

收藏
2020-08-13

共1个答案

一尘不染

老实说,如果您不熟悉Flutter,Dart和JS,除非您愿意花很多时间,否则您将遇到一些麻烦。它的确取决于您要使用Ether
JS库确切地进行什么操作,但是总的来说,您将很难将其与Flutter集成。有一个以太坊软件包,但是它的范围似乎比您一直在看的ether.js库要窄得多-
它似乎主要集中在与RPC api的通信上,而不是与钱包等打交道。

如果您不习惯使用Flutter,最好的选择是使用AndroidiOS特定的库来执行实际的以太坊内容,并通过Platform
Channels
与Dart 代码中的通用api
通信。这取决于您需要公开多少API,这可能是一项艰巨的任务,尤其是对于那些对flutter / dart以及可能对android /
ios开发还不熟悉的人。但是,与在Webview中运行的javascript来回通信相比,这将具有更高的性能,并且实际上可能也更容易编写代码,因为flutter目前还没有任何好的js代码调用机制。

还有另一个选择-完全使用其他客户端UI框架。React native可以满足您的所有需求,并且具有使用Javascript的优势,因此它很可能可以轻松地集成Ether.js库,尽管我不能保证它实际上会完全支持ether.js库(它的运行时可能不会具有必要的加密扩展名)。

2020-08-13