为什么httpInterceptor在应用程序启动时被拒绝,即使有网络?

时间:2016-07-08 14:43:03

标签: android cordova ionic-framework

我使用以下代码在没有网络时显示消息。在飞行模式下测试应用程序时效果很好。但是,即使应用程序代码启动时存在网络,它也始终显示弹出窗口(rejection.status === 0)。如何解决它?

.config(function($provide, $httpProvider) {
    $provide.factory('httpInterceptor', function($q, $injector) {
        return {
            response: function(response) {
                return response || $q.when(response);
            },
            responseError: function(rejection) {
                var interactiveService = $injector.get('interactiveService');
                if (rejection.status === 0 || rejection.status === -1) {
                    interactiveService.showPopup('The internet is disconnected on your device.' + rejection.status);
                }
                return $q.reject(rejection);
            }
        };
    });
    $httpProvider.interceptors.push('httpInterceptor');
})

1 个答案:

答案 0 :(得分:0)

如果有帮助尝试这个

.config(function($provide, $httpProvider) {
$provide.factory('httpInterceptor', function($q, $injector) {
    return {
        response: function(response) {
            return response || $q.when(response);
        },
        responseError: function(rejection) {
            var interactiveService = $injector.get('interactiveService');
            /************** New code starts*******/
             var networkState = navigator.connection.type;
             if(networkState === Connection.NONE){
              interactiveService.showPopup('The internet is disconnected on your device.' + rejection.status);
             }

             /************** New code ends*******/
            return $q.reject(rejection);
        }
    };
});
$httpProvider.interceptors.push('httpInterceptor');
})