1

我正在尝试使用默认的 File() 构造函数创建一个 File 对象,但是由于 cordova-plugin-file 用它自己的 File() 构造函数的实现替换了构造函数,所以我无法获取 File 对象。有没有办法在不删除文件插件的情况下访问 w3c File 构造函数?

此外,是否可以编辑插件,以便可以将 File() 构造函数重命名为 FileCordova() 之类的任何其他内容,以便可以访问默认构造函数和插件的构造函数?

PS:我需要 File 对象传入一个只接受 w3c File 对象的函数,所以插件返回的对象对我来说几乎没用。

4

2 回答 2

1

我通过编辑cordova-plugin-file 弄清楚了。我在 /Project/plugins/cordova-plugin-file/ 编辑了 plugin.xml

我改变了这个:

 <js-module src="www/File.js" name="File">
    <clobbers target="window.File" />
</js-module>

对此:

<js-module src="www/File.js" name="File">
    <clobbers target="window.FileC" />
</js-module>

编辑完文件后,我去了科尔多瓦 cmd 并删除了我拥有的所有平台

cordova platform remove android
cordova platform remove browser

然后我再次将它们添加回来,因为这是将插件重新加载到平台资产文件夹中的唯一方法。

cordova platform add android
cordova platform add browser

在此之后,我可以使用 new File() 构造函数获取默认 File 对象,并使用 new FileC() 构造函数获取文件插件的 File 对象。

于 2018-02-23T07:08:29.997 回答
0

这是一个更简单的调整。由于标准 File 对象只是一种特定类型的 Blob,您可以重新创建一个(此示例使用 TypeScript):

interface FileBlob extends Blob {
    lastModified: number;
    name: string;
}

然后FileBlob像使用标准文件一样使用。

于 2020-04-29T02:14:07.073 回答