gpt4 book ai didi

javascript - 使用 ngCordova 检查 Activity 网络连接,如果在 ionic 中不活动则退出应用程序

转载 作者:行者123 更新时间:2023-12-02 14:06:40 31 4
gpt4 key购买 nike

我正在开发一个 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/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com