I am not able to get the cordova file system to work. I have a project with the following dependencies:
com.ionic.keyboard 1.0.3 "Keyboard"
org.apache.cordova.console 0.2.12 "Console"
org.apache.cordova.device 0.2.13 "Device"
org.apache.cordova.file 1.3.2 "File"
org.apache.cordova.file-transfer 0.4.8 "File Transfer"
In app.js
I define a dependency on a controller module:
angular.module('starter', ['ionic', 'controllers']);
The controller code is basically this:
angular.module('controllers', [])
.controller('GalleryCtrl', function ($scope) {
function success() {...}
function error() {...}
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, error);
}
}
What I then get is:
LocalFileSystem is not defined
Also, requestFileSystem
is undefined. What could be the reason for this behavior?
I am using cordova 4.1.2 and ionic 1.3.1.
EDIT: This is the according html markup:
<body ng-app="starter" ng-controller="GalleryCtrl">
<ion-nav-view>
<ion-slide-box id="slideBox">
<ion-slide ng-repeat="..."> <!-- details omitted -->
</ion-slide>
</ion-slide-box>
</ion-nav-view>
</body>
You simply aren't waiting for deviceReady event to be fired and thus the File plugin isn't loaded yet. Change
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, error);
to
document.addEventListener("deviceready", function() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, error);
}, false);
The LocalFileSystem.PERSISTENT might be undefined even after that (has been for me while emulating etc.) but it can be replaced with 1 as it is just a constant.