Stellan
Stellan

Reputation: 183

FileReader overridden Ionic, cordova file

Hi I'm trying to use the cordova file plugin in my application but I'm hitting a little problem.

the file plugin apparently has it's own constructor for FileReader, which doesn't include the add/removeEventListener part.

The problem is I have another package that needs this.

Here is the code for that

  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)

I have tried renaming cordova file's constructor to something else but it still seems to override the original FileReader

In their constructor they save the "original FileReader" as _realReader

The only way I've been able to solve this is by wrapping the code in an

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

So that the code doesn't run until it's overriden by the plugin, and then use the _realReader but that doesn't always work as I navigate through the app and gives me a white screen sometimes before a route has been loaded.

Anyone that has any good suggestions for this?

Upvotes: 1

Views: 894

Answers (1)

Stellan
Stellan

Reputation: 183

I ended up changing the target to not override the original FileReader by doing

<clobbers target="window.FileReaders" />

instead of <clobbers target="window.FileReader" />

Probably not the best solution but now it works.

Upvotes: 1

Related Questions