使用dart语言的第三方库

时间:2014-04-04 21:34:07

标签: dart dart-pub dart-js-interop

如何在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)以及我的示例代码中的rectattr方法,我将不胜感激。

2 个答案:

答案 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。