#angularjs #cordova #ionic-framework #ngcordova
#angularjs #кордова #ionic-framework #ngcordova
Вопрос:
Я использую плагин для получения статуса и типа подключения моего мобильного устройства через приложение. Но плагин работает только внутри $ionicPlatform.ready
, по крайней мере, это случилось со мной, когда я запускаю контроллер, результатом типа соединения является unknow
.
Ссылка на плагин: Ссылка на установщик сетевого плагина: установщик CLI
Код
angular.module('starter', ['ionic', 'ngCordova'])
.run(startApp)
.controller('networkCtrl', networkCtrl);
startApp.$inject = ['$ionicPlatform', '$cordovaNetwork'];
function startApp($ionicPlatform, $cordovaNetwork) {
$ionicPlatform.ready(function() {
if (window.cordova amp;amp; window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if (window.StatusBar) {
StatusBar.styleDefault();
}
var netInfo;
netInfo = $cordovaNetwork.getNetwork();
console.log(netInfo); //wifi, 4G, 3G, etc.
});
}
networkCtrl.$inject = ['$scope', '$cordovaNetwork'];
function networkCtrl($scope, $cordovaNetwork) {
var netInfo;
netInfo = $cordovaNetwork.getNetwork();
console.log(netInfo); //unknow
}
Ответ №1:
Добавьте это внутрь document.addEventListener("deviceready", function () {
function networkCtrl($scope, $cordovaNetwork) {
$scope.networkType = null;
$scope.connectionType = null;
document.addEventListener("deviceready", function () {
$scope.networkType = $cordovaNetwork.getNetwork();
if ($cordovaNetwork.isOnline()) {
$scope.connectionType = 'Online';
}
else if ($cordovaNetwork.isOffline()) {
$scope.connectionType = 'Offline';
}
else {
$scope.errorMsg = 'Error getting isOffline / isOnline methods';
}
}, false);
});
Комментарии:
1. Хорошо, я попробую это, я вернусь
2. Работает отлично, спасибо, я добавляю событие click с помощью ng-click, чтобы получить информацию о сети при попытке входа в систему без Интернета.