/** * This class contains information about any NetworkStatus. * @constructor */ function NetworkStatus() { this.code = null; this.message = ""; } NetworkStatus.NOT_REACHABLE = 0; NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK = 1; NetworkStatus.REACHABLE_VIA_WIFI_NETWORK = 2; /** * This class provides access to device Network data (reachability). * @constructor */ function Network() { /** * The last known Network status. * { hostName: string, ipAddress: string, remoteHostStatus: int(0/1/2), internetConnectionStatus: int(0/1/2), localWiFiConnectionStatus: int (0/2) } */ this.lastReachability = null; }; /** * Called by the geolocation framework when the reachability status has changed. * @param {Reachibility} reachability The current reachability status. */ Network.prototype.updateReachability = function(reachability) { this.lastReachability = reachability; }; /** * * @param {Object} uri * @param {Function} win * @param {Object} options (isIpAddress:boolean) */ Network.prototype.isReachable = function(uri, win, options) { var status = new NetworkStatus(); if(NetworkManager.isReachable(uri)) { if (NetworkManager.isWifiActive()) { status.code = NetworkStatus.REACHABLE_VIA_WIFI_NETWORK; } else { status.code = NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK; } } else { status.code = NetworkStatus.NOT_REACHABLE; } win(status); }; PhoneGap.addConstructor(function() { if (typeof navigator.network == "undefined") navigator.network = new Network(); });