我必须构建一个可以注销的Ionic 2应用程序。因此,当我的用户注销时,我必须清除所有组件并返回登录页面。 我使用这种方法来做到这一点:
initialHref = window.location.href;
logout() {
navigator.splashscreen.show();
window.location.assign(this.initialHref);
}
但我有一个问题。我必须在我的应用程序中测试用户的互联网连接。我有一种测试方法:
getInternetConnection() : string {
let networkState = navigator.connection.type;
let states = {};
states[Connection.UNKNOWN] = 'unknown';
states[Connection.ETHERNET] = 'ethernet';
states[Connection.WIFI] = 'wifi';
states[Connection.CELL_2G] = '2g';
states[Connection.CELL_3G] = '3g';
states[Connection.CELL_4G] = '4g';
states[Connection.CELL] = 'generic';
states[Connection.NONE] = 'not-connected';
return states[networkState];
}
问题:当我使用我的注销方法时,我的应用程序会无限期地停留在启动画面中。我在Android Studio中遇到此错误:
06-14 11:27:39.728 14192-14192/com.ionicframework.myapp722890 I/chromium: [INFO:CONSOLE(85505)] "ReferenceError: Connection is not defined
at PTools.getInternetConnexion (file:///android_asset/www/build/main.js:5999:16)
at PDataManager.isConnected (file:///android_asset/www/build/main.js:10648:40)
at new PDataManager (file:///android_asset/www/build/main.js:10367:14)
at AppModuleInjector.get (/AppModule/module.ngfactory.js:343:69)
at AppModuleInjector.getInternal (/AppModule/module.ngfactory.js:481:53)
at AppModuleInjector.NgModuleInjector.get (file:///android_asset/www/build/main.js:86063:44)
at CompiledTemplate.proxyViewClass.AppView.injectorGet (file:///android_asset/www/build/main.js:154924:45)
at CompiledTemplate.proxyViewClass.DebugAppView.injectorGet (file:///android_asset/www/build/main.js:155352:49)
at ElementInjector.get (file:///android_asset/www/build/main.js:154428:27)
at CompiledTemplate.proxyViewClass.AppView.injectorGet (file:///android_asset/www/build/main.js:154924:45)
at CompiledTemplate.proxyViewClass.DebugAppView.injectorGet (file:///android_asset/www/build/main.js:155352:49)
at ElementInjector.get (file:///android_asset/www/build/main.js:154428:27)
at ReflectiveInjector_._getByKeyDefault (file:///android_asset/www/build/main.js:154185:24)
at ReflectiveInjector_._getByKey (file:///android_asset/www/build/main.js:154120:25)
at ReflectiveInjector_.get (file:///android_asset/www/build/main.js:153989:21)", source: file:///android_asset/www/build/main.js (85505)
我不知道如何解决这个问题。 也许我可以: 找到另一种注销方法? 找另一种测试互联网连接的方法? 我必须保持这两个功能。 当我第一次使用应用程序时,我的互联网连接测试效果很好。
有什么想法吗?