2017-01-12 60 views
0

我写了一个脚本来检测是否有wifi连接。但是,我注意到,如果应用程序在没有WiFi连接的情况下启动,则splashscreen将加载,然后我会看到一个白色屏幕。控制台显示此错误:闪屏后的离子白屏

Failed to load resource: net::ERR_INTERNET_DISCONNECTED

这是我的脚本检测WiFi和其放置在“$ ionicPlatform.ready”:

$rootScope.$on('$cordovaNetwork:offline', function(event, networkState) 
    { 
     connectionerror($ionicPopup) 
    }) 

    //display error msg and close the app. 
    function connectionerror($ionicPopup,$scope) 
    { 
     var myPopup = $ionicPopup.show({ 
     title: 'Network Error', 
     content: 'No internet connectivity detected. Please try again.', 
     buttons: [ 
     { 
      text: '<b>Retry</b>', 
      type: 'button-positive', 
      onTap: function(e) 
      { 
      if (!$cordovaNetwork.isOnline()) 
      { 
       e.preventDefault(); 
      } 
      else 
      { 
       $state.reload(); 
      } 
      } 
     }] 
     }); 
    } 

如何解决它,以便启动画面后,如果没有wifi,消息会显示?

回答

0

错误发生在您试图从PC上加载资源时。如果您正在运行离子服务或离子服务直播,并断开无线网络连接,应用程序将尝试从您的电脑上使用wifi加载模板,并且无法执行此操作。

要测试该脚本,您应该构建应用程序并在设备上运行它。

如果这样工作,控制器应该有不同的工作。它应该看起来更像这样:

.controller('controller', function($scope, $rootScope, $state, $ionicPopup, $cordovaNetwork){ 
    $rootScope.$on('$cordovaNetwork:offline', function(event, networkState) 
     { 
     connectionerror() 
     }) 

    //display error msg and close the app. 
    function connectionerror() 
    { 
     var myPopup = $ionicPopup.show({ 
     title: 'Network Error', 
     content: 'No internet connectivity detected. Please try again.', 
     buttons: [ 
     { 
      text: '<b>Retry</b>', 
      type: 'button-positive', 
      onTap: function(e) 
      { 
      if (!$cordovaNetwork.isOnline()) 
      { 
       e.preventDefault(); 
      } 
      else 
      { 
       //go to a state like index or home instead of reload. Reload resets the application and should be avioded in single page apps 
       $state.go('...'); 
      } 
      } 
     }] 
     }); 
    } 
}) 
+0

其实我正在从设备运行应用程序。在测试时设备未连接到电脑。当我关掉我的wifi然后启动应用程序,启动屏幕加载然后我得到了我在问题 – noor

+0

中提到的错误的白色屏幕,你可以发布整个控制器? – Hiraqui