我试图在点击登录按钮后检查互联网连接,但到目前为止,当按下按钮时,应用程序不会通过下一页但它也不会显示警告框。如何在ionic / angularjs中做到这一点?这是我的代码:
if (navigator.onLine) {
userFactory.getUser(usern).then(function(response)
{
if(JSON.stringify(response.data) === "null")
{
alert('Please sign-up for an account.');
}
else
{
if(pass === response.data.Password)
{
var myPopup = $ionicPopup.show({
template: '<input type="password" ng-model="userdata.passwordChange">',
title: 'Change Password',
scope: $scope,
buttons: [
{ text: 'Ok' },
{
text:'Cancel',
type: 'button-positive',
onTap: function(e)
{
if(e == true)
{
myPopup.close();
}
else
{
$location.path('/page17');
console.log($location.path());
myPopup.close();
}
}
}
]
});
}
else
{
if(pass == $scope.userdata.passwordChange)
{
$location.path('/page9');
}
else if(pass == "omar_1992!")
{
$location.path('/page9');
}
else
{
alert('Login failed. Please check your credentials.');
}
}
}
});
}else{
alert('no internet connection');
}
答案 0 :(得分:0)
使用以下功能
$scope.checkInternetConnection=function($ionicPlatform, $ionicPopup) {
$ionicPlatform.ready(function() {
if(window.Connection) {
if(navigator.connection.type == Connection.NONE) {
$ionicPopup.confirm({
title: "Internet Disconnected",
content: "The internet is disconnected on your device."
})
.then(function(result) {
if(!result) {
ionic.Platform.exitApp();
}
});
}
}
});
答案 1 :(得分:0)
创建一个可以处理所有连接问题的工厂。安装cordova netwrok插件以获取更多数据,如GPS,WiFi,分别处理设备和浏览器连接
cordova插件添加cordova-plugin-network-information
在控制器中包含此工厂并调用 ConnectivityMonitor.isOnline()以检查用户是否已连接到互联网。
或使用 ConnectivityMonitor.startWatching()监控连接
app.factory('ConnectivityMonitor', function($rootScope, $cordovaNetwork){
var noInternetPopUp;
return {
isOnline: function(){
if(ionic.Platform.isWebView()){
return $cordovaNetwork.isOnline();
} else {
return navigator.onLine;
}
},
ifOffline: function(){
if(ionic.Platform.isWebView()){
return !$cordovaNetwork.isOnline();
} else {
return !navigator.onLine;
}
},
startWatching: function(){
if(ionic.Platform.isWebView()){
$rootScope.$on('$cordovaNetwork:online', function(event, networkState){
alert('Network Change : Online');
});
$rootScope.$on('$cordovaNetwork:offline', function(event, networkState){
alert('Network Change : Offline');
});
}
else {
window.addEventListener("online", function(e) {
alert('Network Change : Online');
}, false);
window.addEventListener("offline", function(e) {
alert('Network Change : Offline');
}, false);
}
}
}
})