当互联网在科尔多瓦离子应用程序中不起作用时,我想显示消息,任何人都可以在离子科尔多瓦应用程序中执行此操作。
有一个网络信息插件可以从设备获取网络信息。添加
cordova plugin add org.apache.cordova.network-information
包括它并应用到应用中.js并从onDeviceReady
事件处理程序中注册脱机事件处理程序,
onDeviceReady: function() {
document.addEventListener("offline", onOffline, false);
},
onOffline: function () {
//handle offline
}
其实很简单。添加插件:
cordova plugin add org.apache.cordova.network-information
您无需在索引中包含任何内容.html。只需在您正在使用的控制器上添加$cordovaNetwork即可。而且,以下代码片段将与之配合得很好。
document.addEventListener("deviceready", function () {
// Check for network connection
if(window.Connection) {
//you can log your connection as well, whether it is internet, wifi and so on.In this case you are checking for no connection
alert(navigator.connection.type);
if(navigator.connection.type == Connection.NONE) {
$ionicPopup.confirm({
title: 'Network Problem',
content: 'Sorry, Please Check Your Network Connection.'
})
//or you can simply navigate it to a page with the no internet connection html.
}
}
})
这是方法之一。下一种方法是在要使用的控制器中包含以下代码片段。不要忘记添加$cordovaNetwork,在这种情况下$ionicPlatform。
var type = $cordovaNetwork.getNetwork();
var isOnline = $cordovaNetwork.isOnline();
var isOffline = $cordovaNetwork.isOffline();
$rootScope.$on('$cordovaNetwork:online', function(event, networkState){
var onlineState = networkState;
alert(onlineState);
})
$rootScope.$on('$cordovaNetwork:offline', function(event, networkState){
var offlineState = networkState;
alert(offlineState);
})
document.addEventListener("deviceready", function () {
$rootScope.$on('$cordovaNetwork:online',function(event,networkState){
$location.path('/japp/login');
})
$rootScope.$on('$cordovaNetwork:offline',function(event,networkState){
$ionicPopup.confirm({
title: "Internet Disconnected",
content: "The internet is disconnected on your device."
}).then(function(){
ionic.Platform.exitApp();
})
})
如果您仍然遇到问题,请随时询问任何小细节。
以下是Ionic论坛上的一些讨论: http://forum.ionicframework.com/t/how-to-check-network-coneection/15806/14
你可以找到很多这样的。我建议使用 ngCordova 并做这样的事情:
$rootScope.$on('$cordovaNetwork:online', function() {});
$rootScope.$on('$cordovaNetwork:offline', function() {});
安装插件(cordova 插件添加 org.apache.cordova.network-information)后,您可以在 app 内使用以下代码.js显示警报消息
if(window.Connection) {
console.log("checking connection");
if(navigator.connection.type == Connection.NONE) {
$ionicPopup.alert({
title: "No Internet Connection",
content: "Internet Connection is not available. In offline you can see previously fetched data.",
okType:"balanced",
})
.then(function(result) {
if(!result) {
console.log('ok clicked');
}
});
}
}
这里还有另一个问题。网络信息仅告诉您是否存在连接。但这并不意味着您可以连接到网站和/或正在运行的数据库。在大多数情况下,应用程序依赖于网站和/或数据库可用。所以你也必须检查这些。