Dart语言:如何将String转换为Transferable(ByteBuffer)

时间:2014-11-22 13:44:17

标签: dart converter dart-html transferable

我将使用window.postMessage(""," *",[transferableData])在两个浏览器窗口之间发送数据。但是,我没有找到关于如何将类型转换为Transferables的直接答案。

所以,为了让我开始学习这个,很高兴知道如何将一个简单的String转换为Transferable(ByteBuffer)并在另一侧读取它(那边正在获取带有数据的消息)。这将有助于我解决我的问题并了解这个概念。

重要更新:

这个问题让我在这里:Dart Language: printing reports

Dart VM尚未实施可转移对象http://dartbug.com/4149)。这意味着,如果您通过Dartium(Da​​rt VM)运行应用程序,则另一个窗口将接收并处理postMessage的第一个参数,而不是Transferable Object。但是,JavaScript完成了这项任务:对象被转移,原始数组被清空。

1 个答案:

答案 0 :(得分:2)

import 'dart:convert';

var list = Utf8.encode('xxx');
var data = list is Uint8List ? list.buffer : new Uint8List.fromList(list).buffer;

使用window.PostMessage使用

发送数据
window.postMessage({'data': data}, '*', [data]);

并在接收器端读取,如

var string = Utf8.decode(message.data['data']);

另请参阅http://dartbug.com/19968了解可转让人的状况 据我所知,最近的Dart开发频道已经发布了Dartium 38.xxx 以下是可转让物品https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/tests/html/transferables_test.dart

的小型测试案例