Я пытаюсь использовать API файловой системы в приложении Chrome. Я пробовал весь образец кода, который я могу найти, и не могу получить простой текстовый файл для чтения. Я регистрируюсь почти на каждом шаге, и, похоже, что происходит (или не происходит), все останавливается в первый раз, когда я ссылаюсь на объект считывателя файлов. Он создает просто отлично, потому что я могу зарегистрировать .readyState, но после этого я не могу даже установить событие onload() или выполнить .readAsText().Chrome App FileReader
Вот что я звоню из кнопки:
function clickButton(){
chrome.fileSystem.chooseEntry({type: 'openFile', acceptsMultiple: false}, function(FileEntry){
if(chrome.runtime.lastError) {console.warn("Warning: " + chrome.runtime.lastError.message);}
else{
console.log(FileEntry);
var thing = new FileReader();
console.log(thing.readyState);
thing.onloadstart(function(){
console.log("Started loading " & FileEntry);
});
console.log("added onloadstart");
console.log(thing.readyState);
console.log(thing);
thing.readAsText(FileEntry);
console.log(thing.readyState);
console.log(thing.result);
}
});
document.getElementById("status").innerHTML = "I did something";
}
Я где-то читал, что Chrome не позволяет получать доступ к локальным файлам, но хромовые приложения кажутся разными. По крайней мере, документация, похоже, предполагает это.
Единственное, что у меня на консоли, это объект FileEntry.
https://developer.chrome.com/apps/app_storage#filesystem
Я использовал пример кода прямо по ссылке выше и до сих пор не могут получить это право. У кого-нибудь еще есть эта проблема или я знаю, что я делаю неправильно?
Это казалось ключом. Это заняло немного (хорошо, много) больше, чем просто это изменение, но оно, наконец, работает. Я о головокружении преследую все обратные вызовы в моем коде. :-) – Nerd1