Ionic 1 Cordova Files (temporary)
Objective
1. To use window.requestFileSystem2. To use window.TEMPORARY type of storage
3. To implement file create, read, write and delete.
References
0. Add Cordova
cordova plugin add cordova-plugin-file1. HTML View
<button ng-click="cdv('create-file')" class="button button-positive button-block">create-file</button><button ng-click="cdv('write-file')" class="button button-positive button-block">write-file</button>
<button ng-click="cdv('read-file')" class="button button-positive button-block">read-file</button>
<button ng-click="cdv('remove-file')" class="button button-positive button-block">remove-file</button>
2. JS Controller
function ($scope, $stateParams,$ionicPlatform) {
$scope.cdv = function (options) {
console.log('cordova plugins');
$ionicPlatform.ready(function() {
console.log('deviceReady');
/*cordova task begin*/
switch (options) {
case "create-file":
var type1 = window.TEMPORARY;
var size1 = 5 * 1024 * 1024;
window.requestFileSystem(type1, size1, successCallback1, errorCallback1)
function successCallback1(fs) {
fs.root.getFile('log.txt', {
create: true,
exclusive: true
}, function(fileEntry) {
alert('File creation successfull!')
}, errorCallback1);
}
function errorCallback1(error) {
alert("ERROR: " + error.code)
}
break;
case "write-file":
var type2 = window.TEMPORARY;
var size2 = 5 * 1024 * 1024;
window.requestFileSystem(type2, size2, successCallback2, errorCallback2)
function successCallback2(fs) {
fs.root.getFile('log.txt', {
create: true
}, function(fileEntry) {
fileEntry.createWriter(function(fileWriter) {
fileWriter.onwriteend = function(e) {
alert('Write completed.');
};
fileWriter.onerror = function(e) {
alert('Write failed: ' + e.toString());
};
var blob = new Blob(['Lorem Ipsum'], {
type: 'text/plain'
});
fileWriter.write(blob);
}, errorCallback2);
}, errorCallback2);
}
function errorCallback2(error) {
alert("ERROR: " + error.code)
}
break;
case "read-file":
var type3 = window.TEMPORARY;
var size3 = 5 * 1024 * 1024;
window.requestFileSystem(type3, size3, successCallback3, errorCallback3)
function successCallback3(fs) {
fs.root.getFile('log.txt', {}, function(fileEntry) {
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
alert(this.result);
};
reader.readAsText(file);
}, errorCallback3);
}, errorCallback3);
}
function errorCallback3(error) {
alert("ERROR: " + error.code)
}
break;
case "remove-file":
var type = window.TEMPORARY;
var size = 5 * 1024 * 1024;
window.requestFileSystem(type, size, successCallback4, errorCallback4)
function successCallback4(fs) {
fs.root.getFile('log.txt', {
create: false
}, function(fileEntry) {
fileEntry.remove(function() {
alert('File removed.');
}, errorCallback4);
}, errorCallback4);
}
function errorCallback4(error) {
alert("ERROR: " + error.code)
}
break;
} /*switch*/
function cdvFail(error) {
alert("ERROR: " + error.code)
}
/*cordova task end*/
});/*device ready*/
}/*app task*/
}
NOTE:
List of Error Codes and Meanings
When an error is thrown, one of the following codes will be used.
| Code | Constant |
|---|---|
| 1 | NOT_FOUND_ERR |
| 2 | SECURITY_ERR |
| 3 | ABORT_ERR |
| 4 | NOT_READABLE_ERR |
| 5 | ENCODING_ERR |
| 6 | NO_MODIFICATION_ALLOWED_ERR |
| 7 | INVALID_STATE_ERR |
| 8 | SYNTAX_ERR |
| 9 | INVALID_MODIFICATION_ERR |
| 10 | QUOTA_EXCEEDED_ERR |
| 11 | TYPE_MISMATCH_ERR |
| 12 | PATH_EXISTS_ERR |

Comments