6

我正在尝试设置文件存储以供以后在 Phonegap 中使用,但现在在 Chrome 中进行调试。采用html5rocks上描述的方式只允许我向用户请求配额,但不会执行请求文件系统时的回调。看:

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);
        });
    });
});

更新:

我让Eric Bidelman 的Filer工作,所以我的代码中一定有问题,尽管我看不出 Filer init 方法和我正在做的事情之间有什么区别。

4

1 回答 1

8

我正在运行 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参数

于 2013-06-21T04:13:34.517 回答