Angularjs 在Cordova Ionic框架中检测internet是否工作
我想在cordova Ionic应用程序中internet不工作时显示消息,任何人都可以在Ionic cordova应用程序中执行此操作。有一个从设备获取网络信息的方法。添加Angularjs 在Cordova Ionic框架中检测internet是否工作,angularjs,cordova,phonegap-plugins,ionic-framework,Angularjs,Cordova,Phonegap Plugins,Ionic Framework,我想在cordova Ionic应用程序中internet不工作时显示消息,任何人都可以在Ionic cordova应用程序中执行此操作。有一个从设备获取网络信息的方法。添加 cordova plugin add org.apache.cordova.network-information 将其包含在app.js中,并从ondevicerady事件处理程序中注册脱机事件处理程序 onDeviceReady: function() { document.addEventListener(
cordova plugin add org.apache.cordova.network-information
将其包含在app.js中,并从ondevicerady
事件处理程序中注册脱机事件处理程序
onDeviceReady: function() {
document.addEventListener("offline", onOffline, false);
},
onOffline: function () {
//handle offline
}
嗨,这里还有一个问题。网络信息只告诉您是否存在连接。但这并不意味着你可以连接到一个网站和/或一个正在运行的数据库。在大多数情况下,应用程序取决于网站和/或数据库是否可用。因此,您也必须检查这些内容。以下是关于爱奥尼亚论坛的一些讨论: 你可以找到很多像这样的。我建议使用ngCordova并执行以下操作:
$rootScope.$on('$cordovaNetwork:online', function() {});
$rootScope.$on('$cordovaNetwork:offline', function() {});
其实很简单。
添加插件:
cordova plugin add org.apache.cordova.network-information
您不需要在index.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();
})
})
如果您仍然有问题,请随时询问任何小细节。安装插件(cordova plugin add 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');
}
});
}
}
当您搜索“cordova internet plugin”时,这是第一个结果:这是正确的解决方案,但如果您需要另一个解决方案,您可以在启动应用程序时检查互联网是否存在: