2017-01-12 150 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