繁体   English   中英

从 Dart 调用 javascript

[英]calling javascript from Dart

我能够从 dart 发出警报消息,但无法弄清楚如何从 dart 调用我在另一个 js 文件中编写的函数。 如果直截了当,这将是一个很好的卖点。 我确实看到了这篇文章,它让我开始了,但我觉得一定有办法,所以如果你想通了,请分享爱。

这是我所做的:

  1. 将此添加到 yaml 文件:

    依赖项:js:托管:js

  2. 在 dart 文件顶部添加 import 语句: import 'package:js/js.dart' as js;

  3. 添加这段代码以显示警报消息

    js.scoped(() { js.context.alert("欢呼雀跃;"); });

  4. 这是我认为应该起作用但不起作用的部分:鉴于我有一个 javascript 函数 doSomething(),我应该能够调用

    js.context.doSomething();

首先将js 包添加为pubspec.yaml中的依赖项:

dependencies:
  js: any

然后你可以像这样使用你自己的 js 函数myFunc()

import 'package:js/js.dart' as js;

main() {
  js.context.myFunc();
}

js.context是 javascript window的别名。

有关更多详细信息,请参阅从 Dart 使用 JavaScript:js 库

也许我的回答对某些人来说是值得的,所以这就是为什么我要发布一个来自 Dart 的简单 JS 函数调用。

  1. 添加js包依赖:
     dependencies: js: any
  2. 创建一个 JS 文件,比方说example.js
     function test() { return 12+20; }
  3. 使用<script src="...">标签将上面的example.js添加到index.html中。
  4. 从 JS 到 Dart 互操作上面的函数:
     @JS() library t; import 'package:js/js.dart'; @JS() external int Test(); class MyOwn { int get value => Test(); }
  5. 并且,在 AngularDart 的 TODOLIST——这是可用的默认组件——:
     @override Future<Null> ngOnInit() async => print(MyOwn().value);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM