我正在构建一个Cordova应用程序,其中我正在使用Cordova网络信息插件org.apache.cordova.network-information。在过去的几天里,我在safari中调试web-inspector时发现了这个奇怪的bug,里面写着“类型错误‘未定义’不是一个对象(计算'navigator.connection.type')”。在初始加载期间,它工作得很好,但在应用程序中进一步导航时,会显示此错误,并且应用程序冻结。在iOS 8中,它经常出现,但在安卓棒棒糖中,它偶尔会出现。我已经尝试了所有关于这方面的建议或帖子,但都无济于事。我使用的是科尔多瓦4.3版,iOS 8.1。非常感谢任何人的帮助,很抱歉不能发布任何关于这方面的图片,因为我没有足够的声誉来发布它
    function checkConnection() { 
    alert(navigator.connection.type);
    var networkState = navigator.connection.type;
   var states = {};
    states[Connection.UNKNOWN]  = 'Unknown connection';
    states[Connection.ETHERNET] = 'Ethernet connection';
    states[Connection.WIFI]     = 'WiFi connection';
    states[Connection.CELL_2G]  = 'Cell 2G connection';
    states[Connection.CELL_3G]  = 'Cell 3G connection';
    states[Connection.CELL_4G]  = 'Cell 4G connection';
    states[Connection.CELL]     = 'Cell generic connection';
    states[Connection.NONE]     = 'No network connection';
    if(networkState == Connection.UNKNOWN || networkState == Connection.NONE){
        navigator.notification.alert('No Network Available',null,"Warning");
        sessionStorage.setItem('UserID',"");
        $.mobile.changePage("#loginPage", {
                            transition: 'none',
                            showLoadMsg: true
                            });
        return false;
    }else{
        return true;
   }
}发布于 2017-09-20 21:55:38
在我的例子中,问题是我在device ready之外调用函数,所以这样做解决了我的问题:
document.addEventListener("deviceready", function(){
     // do your  navigator.connection.type stuff here 
    }, false);https://stackoverflow.com/questions/29467123
复制相似问题