cordova-file-handler.ts
961 Bytes
import { FileHandler } from '../api/file-handler';
declare var Rx;
export class CordovaDownloader implements FileHandler {
download(source:string, target:string) : Rx.Observable<number> {
return Rx.Observable.create((subscriber:Rx.Subscriber<number>) => {
if (!window['FileTransfer']) {
subscriber.error("Cordova FileTransfer object undefined");
}
let fileTransfer = new window['FileTransfer']();
fileTransfer.onprogress = (progress:ProgressEvent) => {
subscriber.next(progress.loaded / progress.total);
};
fileTransfer.download(
source ,
target ,
(entry:any) => {
subscriber.complete();
} ,
(error:any) => {
subscriber.error(error);
},
true
);
});
}
}