2015-12-14 64 views
0

嗨我想在我的应用程序中使用cordova文件插件,但我遇到了一个小问题。FileReader覆写离子,科尔多瓦文件

该文件插件显然有它自己的构造函数FileReader,它不包含add/removeEventListener部分。

问题是我有另一个包需要这个。

这里是我试图重新命名科尔多瓦文件的构造以别的东西为

var reader = new FileReader() 

    function onLoadEnd (e) { 
    reader.removeEventListener('loadend', onLoadEnd, false) 
    if (e.error) cb(e.error) 
    else cb(null, toBuffer(reader.result)) 
    } 

    reader.addEventListener('loadend', onLoadEnd, false) 
    reader.readAsArrayBuffer(blob) 

的代码,但它似乎仍然覆盖原始FileReader

在其构造它们保存“原来的FileReader”如_realReader

我一直能够解决这个问题的唯一方法是将代码包装在

document.addEventListener('deviceready', function() { /* above function */ }); 

这样代码才会运行,直到它被插件覆盖,然后使用_realReader,但这并不总是工作,因为我在应用程序中导航,并且有时在路线已经出现之前给我一个白色屏幕加载。

任何对此有什么好建议的人?

回答

1

我结束了做

<clobbers target="window.FileReaders" />

代替<clobbers target="window.FileReader" />

可能不是最好的解决方案改变了目标不会覆盖原有FileReader,但现在它的工作原理。