【问题标题】:Cannot retrieve connection status with PhoneGap 2.2.0无法使用 PhoneGap 2.2.0 检索连接状态
【发布时间】:2012-11-28 21:56:41
【问题描述】:

我遇到了 2.1.0 的问题,所以我升级到 2.2.0 以确保它没有归结为错误,但它仍然无法正常工作。

我有以下代码:

checkConnection: function() {

        alert(1);
        alert(navigator.connection.type);
        alert(2);

        var networkState = navigator.connection.type;

        if(networkState == 'Connection.UNKNOWN' || networkState == 'Connection.NONE') {
            return false;   
        } else {
            return true;    
        }
    }

第一个警报触发并产生一个 1,然后它就死了。我也试过 navigator.network.connection.type 这是一个旧的参考,也不起作用。我现在不知道为什么它不起作用,其他 PhoneGap 功能工作得很好(例如 GeoLocation)。

作为参考,我使用的是运行 iOS 6.0.1 的 iPhone 5。

提前致谢!

【问题讨论】:

    标签: javascript ios cordova


    【解决方案1】:

    检查对 checkConnection 的调用是否在 deviceready 事件之后执行。

    document.addEventListener("deviceready", onDeviceReady, false);
    
    function onDeviceReady() {
       console.log('Application online: ' + checkConnection());
    }
    
    function checkConnection() {
        var networkState = navigator.connection.type;
    
        if (networkState == Connection.UNKNOWN || networkState == Connection.NONE) {
            return false;   
        } else {
            return true;    
        }
    }
    

    此外,您不应与字符串 'Connection.UNKNOWN' 进行比较,而应与常量 Connection.UNKNOWN 进行比较。没有单引号。

    【讨论】:

    • 谢谢,我已经改变了,但这并没有解决问题,因为实际问题首先是从 navigator.connection.type 检索数据。这不会返回任何值,当它调用第二个 alert() 时什么也不会发生,因为它无法检索该值。
    • @Ashley 您确定在 deviceready 事件之后触发了对 checkConnection 的调用吗? docs.phonegap.com/en/2.2.0/…
    • 现在我觉得很傻,这个函数被调用得太早了!为捡起它干杯,现在就开始工作吧!
    猜你喜欢
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 2012-06-29
    相关资源
    最近更新 更多