API файловой системы не работает в Chrome v27 и v29

Я пытаюсь настроить хранилище файлов для последующего использования в Phonegap, но пока отлаживаю в Chrome. Если следовать описанному на html5rocks пути, я могу запросить квоту только у user, но обратный вызов при запросе файловой системы не выполняется. Видеть:

window.webkitStorageInfo.requestQuota(PERSISTENT, 1024*1024*1024, function(grantedBytes) {
    requestFS(grantedBytes);
}, onError);

function requestFS(grantedBytes) {
    window.webkitRequestFileSystem(window.PERSISTENT, grantedBytes, function(fs) {
        // ... does not get called ###################################
    }, onError);
}

Теперь Chrome предупреждает меня, что webkitStorageInfo устарела и с сегодняшнего дня существует новый стандарт https://dvcs.w3.org/hg/quota/raw-file/tip/Overview.html. Я безуспешно пытался использовать navigator.webkitPersistentStorage.

Возможно ли, что API файловой системы в настоящее время не работает или устарел, или, возможно, что-то не так с моим кодом выше?

Ниже функции также ничего не делают, никаких ошибок не видно:

navigator.webkitPersistentStorage.queryUsageAndQuota(function(usage, quota) {
    console.log(arguments);

    navigator.webkitPersistentStorage.requestQuota(1024 * 1024, function(grantedQuota) {
        console.log(arguments);

        window.webkitRequestFileSystem(window.PERSISTENT, 1024 * 1024, function(fs) {
            console.log(arguments);
        });
    });
});

ОБНОВИТЬ:

У меня работает Filer Эрика Бидельмана, поэтому что-то в моем коде должно быть не так, хотя я не вижу разницы между метод инициализации Filer и что я делаю.


person Benjamin E.    schedule 18.06.2013    source источник


Ответы (1)


Я запускаю Chorme 27, и, похоже, работает следующее, показывая указанное сообщение журнала

function onError () { console.log ('Error : ', arguments); }

navigator.webkitPersistentStorage.requestQuota (1024*1024*1024, function(grantedBytes) {
  console.log ('requestQuota: ', arguments);
  requestFS(grantedBytes);
}, onError);

function requestFS(grantedBytes) {
  window.webkitRequestFileSystem(window.PERSISTENT, grantedBytes, function(fs) {
    console.log ('fs: ', arguments); // I see this on Chrome 27 in Ubuntu
  }, onError);
}

По сути, я изменил window.webkitStorageInfo.requestQuota в исходном коде на navigator.webkitPersistentStorage.requestQuota и удалил параметр PERSISTENT.

person HBP    schedule 21.06.2013
comment
Но это именно то, что я сделал, не так ли? Я предполагаю, что сбой был более сложным, поскольку я подключил его к существующему обширному приложению. В любом случае, спасибо, что попробовали, и Filer.js вывел меня на правильный путь. - person Benjamin E.; 21.06.2013
comment
Я использую chrome 27.0.1453.116, и этот код не работает.. :\ Я получаю FileError.INVALID_MODIFICATION_ERR - person hamilton.lima; 06.07.2013