0

不确定它是编译器限制还是我不理解的东西(可能是最后一个:-))

我正在尝试访问隐藏在本机 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])才会失败。

下面是报错的图片 快照错误

下面是成功运行的图片(在调试模式下) 请注意额外的 DART 符号(上图中缺少)。 快照成功

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

4

1 回答 1

0

请参阅js及其文档,了解如何使用 Dart 可调用的内容来包装 javascript API。

于 2018-11-13T19:21:36.383 回答