如何在cordova中使用带有cordova-plugin-file的w3c File对象?

时间:2018-02-22 19:22:32

标签: cordova cordova-plugins cordova-plugin-file

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

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

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

2 个答案:

答案 0 :(得分:0)

我通过编辑cordova-plugin文件来解决这个问题。我编辑了/ 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>

编辑完文件后,我去了cordova cmd并删除了我所有的平台

cordova platform remove android
cordova platform remove browser

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

cordova platform add android
cordova platform add browser

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

答案 1 :(得分:0)

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

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

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