嗨,我正在尝试在我的应用程序中使用cordova文件插件,但遇到了一个小问题。

文件插件显然具有它自己的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)


我曾尝试将cordova文件的构造函数重命名为其他名称,但它似乎仍会覆盖原始的FileReader

在他们的构造函数中,他们将“原始FileReader”另存为_realReader

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

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


因此,只有在被插件覆盖后,代码才会运行,然后使用_realReader,但是在我浏览应用程序时,该代码并不总是有效,有时会在加载路线之前为我提供白屏。

有什么好的建议吗?

最佳答案

我最终通过执行以下操作将目标更改为不覆盖原始FileReader

<clobbers target="window.FileReaders" />

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

可能不是最好的解决方案,但现在可以使用。

关于javascript - FileReader覆盖了Ionic,cordova文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34273003/

10-12 06:20