Ionic 2:通过Internet测试连接以编程方式重启app失败

时间:2017-06-14 09:39:38

标签: android angularjs cordova ionic2 ionic3

我必须构建一个可以注销的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)

我不知道如何解决这个问题。 也许我可以: 找到另一种注销方法? 找另一种测试互联网连接的方法? 我必须保持这两个功能。 当我第一次使用应用程序时,我的互联网连接测试效果很好。

有什么想法吗?

0 个答案:

没有答案