如何从DART访问Java脚本类中的方法和属性

时间:2018-11-11 21:07:42

标签: dart angular-dart dart-js-interop webusb dart-sdk

不确定是编译器限制还是我不了解的内容(可能是最后一个:-))

我试图访问埋在本机Java脚本类中的“ DataView”结构。 我让它在调试模式下工作;但是,在编译以进行部署时,该解决方案无法正常工作。

  await _transferIn(adapter, 5, 64).then((usbInTransferResult){
    log.finest('_transferIn.then');
    js.context['console'].callMethod('log', [usbInTransferResult]);

    var rxLen = usbInTransferResult['data']['byteLength'];  <<<<< Fails
    for( var index = 0; index < rxLen; index++ ){
      rxData.add(usbInTransferResult['data'].callMethod('getUint8', [index]));  <<<<< Fails
    };

    log.finest(rxData);
    return completer.complete(rxData);
  });

上面的代码读取通过USB(WebUSB)接收的数据包。它读取收到的包长度,并将每个字节复制到List<int>中。在这两个地方(仅在为部署而编译时,读取属性byteLength和调用方法getUint8([index])都会失败。

下面是报告的错误图片 Snapshot Error

下面是成功运行的图片(在调试模式下) 请注意其他DART符号(在上图中没有显示)。 Snapshot success

ps。 我正在WebStorm项目中使用DART-SDK 2.0.0(也尝试过2.1.0-dev.8.0)和Angular-DART 5.0.0。

1 个答案:

答案 0 :(得分:0)

请参阅js package及其文档,以了解如何使用Dart可调用的东西包装javascript API。