似乎没有任何飞镖包,所以我使用的是 Javascript 互操作。这是我到目前为止所得到的:
js.scoped(() {
done(entry) {
print('ok');
}
js.context.doneCallback = new js.Callback.once(done);
js.context.chrome.fileSystem.chooseEntry(null, js.context.doneCallback);
});
它失败了:
未捕获的错误:调用表单 fileSystem.chooseEntry(object, object) 与定义 fileSystem.chooseEntry(可选对象选项,函数回调)不匹配
所以似乎回调被拒绝,因为它是错误的类型。
有任何想法吗?
chrome.fileSystem docs 编辑:将可选参数改回 null(我也尝试了 Damien 在下面的建议)。
编辑:此代码现在可以使用 - 感谢 Damien!
js.scoped(() {
done(entry) { print('ok'); }
js.context.chrome.fileSystem.chooseEntry(null, new js.Callback.once(done));
});
Edit2:更新了打开文件选择器并从中读取路径的代码。但是我不确定如何通过 js_interop 使用 javascript FileReader 对象。
Edit3:请参阅Dart 邮件列表上的讨论。