For some reason, the navigator.connection object is not ready at the same time as the cordova.
You should use a timeout, like this one designed for Angular / Ionic
setTimeout(function(){ var connection = connectionService.getConnection(); console.log("connection : "+connection); $scope.connection = connection; $scope.$apply() }, 5000)
source share