I described the issue here:
https://stackoverflow.com/q/51969064/1619070
When I try to write a file with a correct blob nothing happen, I can see the
file created but is empty and no error or exception or success event is fired
these are the function I've used
```
class FileHelper {
public file:File;
constructor() {
this.file = new File();
}
public save(filename:string, dir:string, data:any):Promise<any> {
console.log("FileHelper.save filename", filename);
console.log("FileHelper.save dir", dir);
console.log("FileHelper.save data", data);
return this.file
.resolveDirectoryUrl(this.file.cacheDirectory)
.then((dir:DirectoryEntry) => {
this.onResolveDirectoryUrlSuccess(dir, filename, data,
this.fileWriter, {
create: true,
exclusive: false
})
})
.catch((error:any) => {
console.log("FileHelper.save error", dir, filename,
error);
});
}
private onResolveDirectoryUrlSuccess(dir:DirectoryEntry,
filename:string,
data:LanguageDataResponseVO,
file_action:(args:Array<any>) => void,
flags:any):void {
console.log("FileHelper.onResolveDirectoryUrlSuccess", dir, filename);
this.gotFileSystem(dir, filename, file_action, flags, data);
}
private gotFileSystem(dir:DirectoryEntry,
filename:string,
action:Function,
flags:{ create:boolean, exclusive?:boolean },
json?:LanguageDataResponseVO):void {
console.log('FileHelper.gotFileSystem - nome file: ' + filename);
dir.getFile(filename, flags,
(fileEntry) => {
console.log("FileHelper.gotFileSystem getFile succes", dir,
filename, fileEntry);
action.call(this, [fileEntry, json]);
},
(error) => {
console.log("FileHelper.gotFileSystem getFile error", dir,
filename, error);
}
);
}
private fileWriter(args:Array<any>) {
console.log('App.LanguageService.fileWriter');
let fileEntry:FileEntry = args[0];
let json:string = args[1];
let blob = new Blob(["text to save"], {type: 'text/plain'});
fileEntry.createWriter(
(file:any) => {
console.log('App.LanguageService.SUCCESS', blob);
file.onwritestart = (event: ProgressEvent) => {
console.log('FileHelper.fileWriter onwritestart - success
file_name', fileEntry.name, event);
};
/**
* Handler for progress events.
*/
file.onprogress = (event: ProgressEvent) => {
console.log('FileHelper.fileWriter onprogress - success
file_name', fileEntry.name, event);
};
/**
* Handler for write events.
*/
file.onwrite = (event: ProgressEvent) => {
console.log('FileHelper.fileWriter onwrite - success
file_name', fileEntry.name, event);
};
/**
* Handler for abort events.
*/
file.onabort = (event: ProgressEvent) => {
console.log('FileHelper.fileWriter onabort - success
file_name', fileEntry.name, event);
};
/**
* Handler for error events.
*/
file.onerror = (event: ProgressEvent) => {
console.log('FileHelper.fileWriter onerror - success
file_name', fileEntry.name, event);
};
/**
* Handler for write end events.
*/
file.onwriteend = (event: ProgressEvent) => {
console.log('FileHelper.fileWriter onwriteend - success
file_name', fileEntry.name, event);
};
file.write(blob);
},
(error) => {
console.log('App.LanguageService.FAIL', error); }
);
}
}
```
This is android behaviour, under iOS everything works correctly
[ Full content available at:
https://github.com/apache/cordova-plugin-file/issues/244 ]
This message was relayed via gitbox.apache.org for [email protected]