javascript – 如何使用导航器而不是window.webkitStorageInfo HTML5文件系统API?

所以有一个类似的帖子发现在这里html-5-filesystem-access-type-error.但是,我不满意的结论,因为我不觉得它实际上回答了这个问题 – 解决方案是不赞成的代码解决方案。有没有人知道如何使用导航器而不是窗口,因为Chrome控制台通知要做?

我一直在使用以下,它的作品,但是Chrome控制台不断通知我不要这样做,因为它已被弃用。

工作已弃用的代码

window.webkitStorageInfo.requestQuota(PERSISTENT, 1024*1024*280, function(grantedBytes) {
    window.webkitRequestFileSystem(PERSISTENT, grantedBytes, onInitFs, errorHandler); 
}, function(e) {
    console.log('Error', e); 
});

注意:onInitFs和errorHandler都是在其他地方定义的函数,它们可以工作。

控制台日志 – 我在控制台中收到的消息如下:

'window.webkitStorageInfo' is deprecated. Please use 'navigator.webkitTemporaryStorage'
or 'navigator.webkitPersistentStorage' instead. 

所以最好的做法是停止使用弃用的方法。不幸的是,当我用导航器替换窗口时,它会崩溃(见下文)。如何使用导航器而不是窗口访问文件系统?

以下是当前API的两个示例。

它使用navigator.webkitPersistentStorage.requestQuota而不是不推荐使用的window.webkitStorageInfo.queryUsageAndQuota:

查询配额

navigator.webkitTemporaryStorage.queryUsageAndQuota ( 
    function(usedBytes, grantedBytes) {  
        console.log('we are using ', usedBytes, ' of ', grantedBytes, 'bytes');
    }, 
    function(e) { console.log('Error', e);  }
);

请求配额

var requestedBytes = 1024*1024*280; 

navigator.webkitPersistentStorage.requestQuota (
    requestedBytes, function(grantedBytes) {  
        console.log('we were granted ', grantedBytes, 'bytes');

    }, function(e) { console.log('Error', e); }
);

您必须选择临时(webkitTemporaryStorage)或持久性(webkitPersistentStorage)存储来进行查询。

目前的Chrome实现跟踪这个特定的规范版本,其中描述了一些更多的内容:http://www.w3.org/TR/2012/WD-quota-api-20120703/

chromestore.js为此数据提供了更简单的API。

要回答您的原始问题,您的新代码将如下所示:

请求配额并初始化文件系统

var requestedBytes = 1024*1024*280; 

navigator.webkitPersistentStorage.requestQuota (
    requestedBytes, function(grantedBytes) {  
        window.webkitRequestFileSystem(PERSISTENT, grantedBytes, onInitFs, errorHandler); 

    }, function(e) { console.log('Error', e); }
);
http://stackoverflow.com/questions/17809824/how-to-use-navigator-instead-of-window-webkitstorageinfo-html5-file-system-api

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – 如何使用导航器而不是window.webkitStorageInfo HTML5文件系统API?