如何在dart中导入和使用任何第三方javascript库?我想在我的dart应用程序中使用snapsvg来渲染svg。但不确定如何添加依赖项以添加和导入它。
我将js: any
添加到我的pubspec.yaml并将packages/browser/interop.js
导入到我的html中。我在哪里下载了snapsvg.js并将其导入我的dart源文件以使用它。
我正在尝试使用来自dart的snapsvg框架来使用以下javascript代码。
s = Snap(800, 600);
s.rect(0, 0, 100, 100).attr({
fill: 'white',
stroke: 'black'
});
我在dart中尝试了这段代码:
import 'package:js/js.dart' as js;
void main() {
var s = js.context.Snap(800, 600);
s.rect(0, 0, 100, 100);
}
这在dartium中运行良好,但是当我在构建后以Javascript运行时,我得到了javascript错误"方法zm在对象中找不到"
我认为这不是正确的方法,我应该在代理上使用callMethod。所以我改变了这样的代码
import 'dart:js' show context, JsObject;
void main() {
var snap = context['Snap'];
snap.callMethod('rect', 0,0,100,100);
}
这在Dartium本身并不起作用。如果有人可以提供如何从dart调用构造函数Snap(800, 600)
以及我的示例代码中的rect
和attr
方法,我将不胜感激。
答案 0 :(得分:1)
您可以使用<script>
标记将它们添加到HTML文件中
您可以使用dart-js-interop从Dart调用JavaScript函数。
此标记下的Stackoverflow上有很多示例 - 只需单击问题下方的标记即可。
当您提供更具体的示例时,它更容易提供帮助。
答案 1 :(得分:1)
您可以使用内置的dart:js库调用JavaScript。请尽量避免使用/ package / js,这是通过将js: any
添加到pubspec来安装的。 js包可能会导致dart2js输出膨胀,我们可能会在某个时候弃用它。
您可以通过脚本标记引用JavaScript文件,就像在任何HTML页面中一样。您实际上并未将它们导入Dart源,您可以使用dart:js通过其顶级context
属性访问JavaScript。