La connexion n'est pas défini dans cordova réseau d'information plugin
J'ai suivi cet article:
pour obtenir des informations de réseau de l'appareil ionique dans les app pour android.
Il fonctionne très bien sur le navigateur, mais quand j'ai installer le compilé apk android, téléphone, cela donne une erreur qui dit que Reference error : Connection is not defined.
à la ligne où j'utilise $cordovaNetwork.isOnline();
J'ai été frapper ma tête autour et ont fait de mon en raison de la recherche et essayé de désinstaller et installer dans l'ordre proposé, mais aucune aide.
M'aider à résoudre ce problème. Ce problème est probablement pas un problème avec le code, et peut-être besoin de quelques petits malins correctif pour le faire fonctionner.
Cette même question est en cours de discussion ici mais je n'ai pas vraiment compris où est que, étant donné morceau de code venant de.
index.html :
<!DOCTYPE html>
<html ng-app="starter" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
<title></title>
<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<!-- <link href="lib/ionic/css/angular-datepicker.min.css" > -->
<link href="css/style.css" rel="stylesheet">
<!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above
<link href="css/ionic.app.css" >
-->
<!-- angular date picker css-->
<link href="lib/datePicker/css/angular-pickadate.css" rel="stylesheet">
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="lib/ionic/js/highcharts-ng.js"></script>
<script src="lib/ionic/js/jquery.min.js"></script>
<script src="lib/ionic/js/highcharts.js"></script>
<script src="lib/ionic/js/ngStorage.min.js"></script>
<script src="lib/ngCordova/dist/ng-cordova.min.js"></script>
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>
<!-- your app's js -->
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
</head>
<body ng-controller="LoginCtrl">
<ion-nav-bar class="mob-bar-balanced">
<!-- <ion-nav-back-button>
</ion-nav-back-button> -->
</ion-nav-bar>
<ion-nav-view></ion-nav-view>
</body>
</html>
app.js:
app.factory('ConnectivityMonitor', ['$rootScope', '$cordovaNetwork', function($rootScope, $cordovaNetwork){
return {
isOnline: function(){
if(ionic.Platform.isWebView()){
$rootScope.online = $cordovaNetwork.isOnline();
return $cordovaNetwork.isOnline();
} else {
$rootScope.online = navigator.onLine;
return navigator.onLine;
}
},
isOffline: function(){
if(ionic.Platform.isWebView()){
$rootScope.online = $cordovaNetwork.isOnline();
return !$cordovaNetwork.isOnline();
} else {
$rootScope.online = navigator.onLine;
return !navigator.onLine;
}
},
startWatching: function(){
if(ionic.Platform.isWebView()){
$rootScope.$on('$cordovaNetwork:online', function(event, networkState){
$rootScope.online =true;
console.log("went online");
});
$rootScope.$on('$cordovaNetwork:offline', function(event, networkState){
$rootScope.online =false;
console.log("went offline");
});
}
else {
window.addEventListener("online", function(e) {
$rootScope.online =true;
console.log("went online");
}, false);
window.addEventListener("offline", function(e) {
$rootScope.online =false;
console.log("went offline");
}, false);
}
}
}
}]);
.config(function($stateProvider,$urlRouterProvider){
$stateProvider
.state('Login',{
url:'/login',
onEnter:["$state","$localStorage", '$rootScope' , '$ionicViewSwitcher',function($state,$localStorage, $rootScope, $ionicViewSwitcher){
if((typeof($localStorage.userInfo)!== 'undefined') && (Object.keys($localStorage.userInfo).length !== 0)) {
$ionicViewSwitcher.nextTransition('none');
$state.go("Deployment");
}
}],
templateUrl:'templates/login.html',
controller:'LoginCtrl',
resolve: {
online: function(ConnectivityMonitor){
return ConnectivityMonitor.isOnline();
}
}
})
ionic plugin ls
et coller les résultats ici.avez-vous définir votre plugin dans cordova-plugin.js et config.xml correctement?
ces étapes ne sont pas requis par l'utilisateur. Ionique cadre et cordova automatiquement mise à jour de config.xm et cordova-plugin.js lorsque le plugin est installé.
J'ai essayé les deux, la commande pour installer le plugin, j'.e cordova-plugin-réseau d'information et de org.apache.cordoue.réseau-information @mudasserajaz
ouais, bien sûr, de la vérification.
OriginalL'auteur Simran Kaur | 2015-08-25
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas sur le tutoriel que vous êtes de mentionner, cependant, vous voudrez peut-être vérifier le post que j'ai écrit qui va littéralement étape par étape, vous indiquant où et pourquoi vous devriez mettre un morceau de code (peut être utile si vous êtes juste de commencer avec l'Ionique): http://www.nikola-breznjak.com/blog/codeproject/check-network-information-change-with-ionic-famework/.
Aussi, j'ai fait l'exemple de code disponible gratuitement sur Github: https://github.com/Hitman666/IonicNetworkInfo. Vous pouvez télécharger le projet (si vous ne voulez pas passer par les étapes vous-même) construire pour votre appareil et de le tester sur l'appareil.
Voici les étapes à partir du blog:
Commencer une nouvelle Ionique projet en faisant:
Ensuite, modifiez le répertoire nouvellement créé IonicNetworkInfo:
Installer ngCordova avec Bower:
Si par hasard vous n'avez pas bower installé, vous pouvez l'installer avec npm:
Ouvrir la www/index.html fichier dans votre éditeur de texte favori, et ajouter la référence à ngCordova (juste au-dessus de la cordova.js le script):
Installer le ngCordova réseau plugin en exécutant la commande suivante dans votre Terminal/invite de Commande (vous devez le faire à partir de la racine du répertoire de votre application; ainsi, dans notre cas, le IonicNetworkInfo répertoire):
Pour vérifier si vous avez correctement installé le plugin, vous pouvez exécuter la commande suivante (à partir du répertoire racine – je ne vais pas répéter ce plus; quand je dis que vous devriez exécuter une commande dans le Terminal/invite de Commande qui, dans ce cas, signifie à partir du répertoire racine de l'application):
Vous devriez voir le résultat suivant:
Ouvrir la www/js/app.js fichier et ajouter ngCordova à la liste de dépendances, de sorte que, fondamentalement, la première ligne ressemble à ceci:
Créer un nouveau contrôleur dans le www/js/app.js fichier appelé MyCtrl, avec le contenu suivant:
Dans ce contrôleur de vous attacher un écouteur d'événement sur le deviceready (car il se peut que l'appareil n'aurait pas encore été initialisé lors de l'exécution de ce code) et vous obtenez les informations du réseau avec:
L'information, au sujet de la météo, vous êtes connecté à internet, qui est obtenu avec la ligne suivante:
Ensuite, vous vous inscrivez deux événements $cordovaNetwork:en ligne et $cordovaNetwork:en ligne, qui déclenchent lorsque l'appareil est en ligne/hors ligne. En eux, vous alors juste mettre à jour le $scope des variables ().
Juste pour la référence, l'ensemble du contenu de la www/js/app.js le fichier doit être:
Dans le index.html fichier, à l'intérieur de la ion-balise de contenu collez le contenu suivant:
Fondamentalement, ce que nous faisons ici, c'est de nous montrer le contenu de la variable de réseau (qui est fixé à la somme de portée via le contrôleur). Aussi, à l'aide de la ion-bascule composant de nous montrer le “je suis en ligne” /“je suis en mode hors connexion” notifications.
Juste pour la référence, le contenu de l'ensemble de la index.html fichier devrait ressembler à ceci:
Afin de tester cette application, vous devez l'exécuter sur votre appareil (parce que vous ne pouvez pas désactiver le réseau dans le simulateur iOS). Si vous avez un appareil Android connecté à votre ordinateur (et de tous les Kits de développement en place), vous pouvez exécuter les opérations suivantes pour les commandes à exécuter votre application sur votre appareil Android:
Merci pour la remarque @xelber
OriginalL'auteur Nikola
Peut-être que vous n'avez pas installé le Réseau Plugin. Veuillez vérifier cette.
Et si vous ne savez pas comment mettre en forme le lien puis il suffit de mettre l'ensemble de lien dans la réponse. Je vais formater pour vous;)
OriginalL'auteur Nandy_10
Maintenant, je pense que ce serait une meilleure approche à utiliser
au lieu de document.la méthode addEventListener("deviceready", function () {
OriginalL'auteur Fabio Colombini