作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 session 应用程序,该应用程序是数据驱动的,并且会不断从网络服务器更新。我将数据存储在本地存储上以实现持久性,但是当第一次安装并启动应用程序时,我想弹出一条“无互联网连接”消息,并在单击弹出窗口上的任何按钮时关闭应用程序。但当有互联网时加载应用程序。我已经在我的 app.run 函数中完成了此操作,但它不起作用。
var app = angular.module('starter', ['ionic', 'ionic-material', 'ngCordova']);
app.run(function ($ionicPlatform, $ionicPopup, $timeout) {
$ionicPlatform.ready(function () {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if (window.StatusBar) {
StatusBar.styleDefault();
}
//checking for internet connection on startup
if (window.Connection) {
if (navigator.connection.type === Connection.NONE) {
document.addEventListener("offline", function () {
$ionicPopup.confirm({
title: "Internet Disconected",
content: "Sorry, No internet connection now, please try again"
}).then(function (result) {
if (!result) {
$ionicPlatform.exitApp();
}
});
}, false);
}
}
});
});
应用程序会弹出消息,但单击任何按钮(确定和取消)时,应用程序只会停留在白屏上。它不会退出应用程序。我不知道做错了什么。请我需要建议和代码示例来纠正我的错误。
最佳答案
需要记住的几个方面:
据报告,您的 exitApp() 实现在 iOS 设备中不起作用
杀死应用程序对于可用性来说是一个很大的问题,您最好在界面上显示最新的缓存数据,或者如果缓存了任何数据,则将“无网络连接”消息集成到应用程序布局中(查看 Spotify for一个例子)
无论如何,您都可以通过 bundle 在 http://ngcordova.com/ 中的 ngCordova.plugins.network
模块来实现您的目的。
这是返回当前网络状态的服务示例:
angular.module('app.common.connectivity', [
'ngCordova.plugins.network'
])
.service('ConnectivityService', function($cordovaNetwork) {
this.isOnline = $cordovaNetwork.isOnline() || false;
});
您可以添加此模块并在需要的地方注入(inject)服务,例如:
var app = angular.module('starter', ['ionic', 'ionic-material', 'app.common.connectivity']);
app.run(function ($ionicPlatform, $ionicPopup, $timeout, ConnectivityService) {
$ionicPlatform.ready(function () {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if (window.StatusBar) {
StatusBar.styleDefault();
}
//checking for internet connection on startup
if( !ConnectivityService.isOnline && !window.localStorage.appLaunched ) {
$ionicPopup.confirm({
title: "Internet Disconected",
content: "Sorry, No internet connection now, please try again"
})
.then(function(result) {
$ionicPlatform.exitApp();
});
}
// Apparently we're online so remember we already have been here
if ( !localStorage.appLaunched ) localStorage.appLaunched = true;
});
});
关于javascript - 使用 ngCordova 检查 Activity 网络连接,如果在 ionic 中不活动则退出应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39986780/
我是一名优秀的程序员,十分优秀!