window.requestFileSystem 方法是不是已弃用?
Posted
技术标签:
【中文标题】window.requestFileSystem 方法是不是已弃用?【英文标题】:Is window.requestFileSystem method is deprecated?window.requestFileSystem 方法是否已弃用? 【发布时间】:2016-10-30 12:57:50 【问题描述】:我目前正在开发一个旧的 ios 应用程序。我对科尔多瓦没有太多想法。
我被困在一个地方,代码使用 window.requestFileSytem 。该函数的成功回调中有一些代码。
调试的时候发现没有触发成功回调。我无法在 latest cordova document 中找到有关此功能的任何信息,但在 older document 中有一些信息。
所以我担心的是window。 requestFilesystem 方法已弃用。如果是这样,那么我怎样才能在最新的科尔多瓦中实现同样的目标。
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onReqFileSystemSuccess, null);
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:查看@iammilinds 的回答我必须更正我最初的陈述:
window.requestFileSystem
方法是非标准的,不应使用。请参阅linked MDN docs。
然而,cordova 文件插件here 或here 的文档中有包含window.requestFileSystem
方法的代码示例(搜索window.requestFileSystem 可能会有所帮助,因为dcos 非常大)。
所以关于你最初的问题:恐怕你必须调试它。也许检查浏览器的控制台可能会提示您出了什么问题。或者尝试将错误处理程序添加到window.requestFileSystem
作为最后一个参数,如下所示:
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onReqFileSystemSuccess, onErrorLoadFs);
【讨论】:
【参考方案2】:是的,它已被弃用。 到目前为止,它仅由 Chrome 实现。
这是该 API 的 Window.requestFileSystem()
的 Mozilla 页面所说的:
非标准 此功能是非标准的,不在标准轨道上。不要在面向 Web 的生产站点上使用它:它不适用于每个用户。实现之间也可能存在很大的不兼容性,并且行为可能会在未来发生变化。
对于其他几个“文件和目录”API,可以看到上述通知。但是,以下通知很重要,并且仅适用于该特定 API。
即使与文件和目录条目 API 的其余部分相比,
requestFileSystem()
也特别不标准;只有 Chrome 实现了它,所有其他浏览器制造商都决定不实现它.它甚至已从 the proposed specification 中删除。请勿使用此方法!
正确用法如本文所述:How to use window.requestFileSystem of FileSystem API?
window.requestFileSystem = window.requestFileSystem || // Chrome
window.webkitRequestFileSystem; // Others
【讨论】:
问题不在于浏览器 API,而在于使用相同签名的 Cordova 插件文件 API(并且是在实现 html 5 浏览器 API 之前编写的)。以上是关于window.requestFileSystem 方法是不是已弃用?的主要内容,如果未能解决你的问题,请参考以下文章