このための dart パッケージはないようです。そのため、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(optional object options, function callback) と一致しません
間違ったタイプであるため、コールバックが拒否されているようです。
何か案は?
chrome.fileSystem docs 編集: オプションのパラメーターを null に戻しました (以下のダミアンの提案も試しました)。
編集: このコードは動作するようになりました - ありがとう、ダミアン!
js.scoped(() {
done(entry) { print('ok'); }
js.context.chrome.fileSystem.chooseEntry(null, new js.Callback.once(done));
});
Edit2:ファイル チューザーを開いてそこからパスを読み取るコードを更新しました。ただし、js_interop を介して JavaScript FileReader オブジェクトを使用する方法がわかりません。
Edit3: Dart メーリング リストの議論を参照してください。