window.requestFileSystem方法已经被弃用了吗?

6

我目前正在处理一个旧版的iOS应用程序。 我对Cordova并不了解。

我卡在一个地方,代码使用了 window.requestFileSytem,并且有一些代码在该函数的成功回调中。

当我进行调试时,我发现成功回调没有被触发。我在最新的Cordova文档中找不到关于这个函数的任何东西,但是在早期的文档中有一些内容。

因此,我担心window.requestFilesystem方法已被弃用。如果是这样,那么我该如何在最新的Cordova中实现同样的功能。

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onReqFileSystemSuccess, null);

任何帮助都将不胜感激。

2个回答

3

在看完 @iammilinds 回答之后,我需要更正一下我的最初说法:

window.requestFileSystem 方法是非标准的,不应该使用。请参考 MDN 文档

然而,在 cordova 文件插件的文档中存在包含 window.requestFileSystem 方法的代码示例,可以在这里这里找到(搜索 window.requestFileSystem 可能会有所帮助,因为文档相当大)。

所以关于你最初的问题:恐怕你需要调试它。也许检查浏览器的控制台可能会给你一些暗示。或者尝试在 window.requestFileSystem 的最后一个参数中添加错误处理程序,就像这样:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onReqFileSystemSuccess, onErrorLoadFs);

1

是的,它已经被弃用了。
截至今天,它仅由Chrome实现。

这是Mozilla页面上Window.requestFileSystem() API的说明:

非标准
此功能是非标准的,没有遵循标准轨迹。不要在面向Web的生产站点上使用它:它不适用于每个用户。不同实现之间可能存在较大的不兼容性,并且行为可能会在未来更改。

上述注意事项也适用于其他几个“文件和目录”API。然而,下面的提示对于此特定API非常重要,只针对此API阅读。

即使与其他文件和目录条目API相比,requestFileSystem()尤其是非标准的;只有Chrome实现了它,所有其他浏览器制造商都决定不实现它。它甚至已从提议的规范中删除。不要使用此方法!


正确的用法如本帖所述:如何使用FileSystem API的window.requestFileSystem?

window.requestFileSystem = window.requestFileSystem ||  // Chrome
                           window.webkitRequestFileSystem;  // Others

这个问题不是关于浏览器API的,而是关于Cordova插件文件API的,它使用相同的签名(并且在HTML 5浏览器API实现之前编写)。 - janpio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接