我是一个dart 新手,我试图通过在其中编写一些库函数来try 一下.

虽然从DART调用javascript函数没有问题,但我希望能够从javascript调用DART函数,但是到目前为止,我还没有太多类似的功能.

例如,我希望能够从DART公开一些基本功能,例如:

main() {
  String foo() {
    return "bar!";
  }

  js.scoped(() {
    js.context.foo = foo;
  });
}

然后可以从javascript调用它们,如下所示:

<script>
  window.onload = function() {
    alert("foo() = " + foo());
  }
</script>

这样的事情可能吗?

推荐答案

没问题!请参见Calling Dart from JavaScript.

在您的 case 中:

import 'dart:js' as js;
main() {
  String foo() {
    return "bar!";
  }

  js.context['foo'] = foo;
}

Dart相关问答推荐

`异步内联方法`的这些定义之间有什么区别?

如何在 Flutter 的 firebase_database 中执行事务?

PageView.builder 给出水平视口被给出无界高度错误

在 Column Flutter 中居中展开 ListView

从 PopupMenuItem 中删除填充(overflow menu)

运行时出现Flutter错误:Error waiting for a debug connection: Bad state: No element

Dart 包 - 如何隐藏内部方法和类?

从列表中删除项目后更新 UI

如何等待forEach完成异步回调?

Dart / Flutter 错误:没有为类Logger定义toStringDeep

如何删除ios上的overscroll?

如何在Flatter中设置特定容器中所有文本的 colored颜色 ?

未定义命名参数child.在 Center() 构造函数中

Flutter SlideTransition 从 Offset OFF SCREEN 开始

不推荐使用AnteStorStateofType,请改用findAncestorStateOfType

如何更改Flatter DevTools的默认浏览器?

如何创建带有固定页脚和Flutter的滚动视图?

Dart:如何在异步函数中管理并发

如何以 Dart 语言将变量完全转储/打印到控制台?

如何展平flatten列表?