2015-12-14 49 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,但現在它的工作原理。