flutter for web中js与dart互相通信

js与dart相互通信

一. dart发送命令给js

import 'dart:js' as js;
/**
   * 1. 传递数据写法一
   * */
  js.context.callMethod("dartCommand", ["dart发送的命令", (result) {
    print(result);
    /**
     * 这里是回调
     * */
  }]);
  /**
   * 2. 传递数据写法二
   * */
  js.JsObject(js.context["dartCommand"],["dart发送的命令", (result) {
    /**
     * 这里是回调
     * */
  }]);

二. js发送命令给dart

/**
 * js 发送命令
*/
function sendMessage() {
    webCallback("js的命令");
}

我并没有找到js直接发送命令的方法,但是我有两个思路:
1.通过window.location.href带参数传递,这种方式是可行的,在dart中对参数进行解析得出传递的数据。
2.通过dart注册一个js方法的回调,让js持有回调,在js需要调用方法的时候执行回调。
以上是方法二,实验已经成功。
flutter for web中js与dart互相通信_第1张图片

具体代码github

你可能感兴趣的:(笔记,flutter,前端,javascript)