This might be the result of bootstrapping your Ionic app before Cordova has finished initializing: calls to Cordova plugins will fail silently until Cordova is ready.
We had a similar issue with $cordovaStatusbar, and fixed it by removing the ng-app="myApp"
directive and replacing it with:
ionic.Platform.ready(function() {
angular.bootstrap(document, ['myApp']);
});
(in a normal <script> at the bottom of index.html)
More information: