여기에는 다트 패키지가 없으므로 Javascript interop을 사용하고 있습니다. 그것은에 실패한 것Dart가 포함 된 크롬 패키지 앱에서 파일 선택기를 여는 방법
js.scoped(() {
done(entry) {
print('ok');
}
js.context.doneCallback = new js.Callback.once(done);
js.context.chrome.fileSystem.chooseEntry(null, js.context.doneCallback);
});
:
Uncaught Error: Invocation of form fileSystem.chooseEntry(object, object) doesn't match definition fileSystem.chooseEntry(optional object options, function callback)
그래서 잘못된 유형이기 때문에 콜백이 거부되고있는 것 같다 이것은 내가 지금까지있어 것입니다.
아이디어가 있으십니까?
chrome.fileSystem docs 편집 : 옵션 매개 변수를 null로 다시 변경했습니다 (아래 Damien의 제안도 시도 함).
편집 :이 코드는 작동합니다 - 감사합니다 Damien!
js.scoped(() {
done(entry) { print('ok'); }
js.context.chrome.fileSystem.chooseEntry(null, new js.Callback.once(done));
});
Edit2가 : Updated code 파일 선택기를 열고 그것에서 경로를 읽습니다. 그러나 js_interop 통해 자바 스크립트 FileReader 개체를 사용하는 방법을 잘 모르겠습니다.
편집 3 : Dart 메일 링리스트의 discussion을 참조하십시오.
잘 했어! 감사. –