2010-09-07 02:13:09 +08:00
|
|
|
|
2009-11-18 02:38:49 +08:00
|
|
|
/**
|
|
|
|
* This class contains information about any NetworkStatus.
|
|
|
|
* @constructor
|
|
|
|
*/
|
|
|
|
function NetworkStatus() {
|
2010-09-21 11:25:57 +08:00
|
|
|
//this.code = null;
|
|
|
|
//this.message = "";
|
2010-09-07 02:13:09 +08:00
|
|
|
};
|
|
|
|
|
2009-11-18 02:38:49 +08:00
|
|
|
NetworkStatus.NOT_REACHABLE = 0;
|
|
|
|
NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK = 1;
|
|
|
|
NetworkStatus.REACHABLE_VIA_WIFI_NETWORK = 2;
|
2010-09-07 02:13:09 +08:00
|
|
|
|
2009-11-18 02:38:49 +08:00
|
|
|
/**
|
|
|
|
* 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;
|
|
|
|
};
|
2010-09-07 02:13:09 +08:00
|
|
|
|
2009-11-18 02:38:49 +08:00
|
|
|
/**
|
|
|
|
* Called by the geolocation framework when the reachability status has changed.
|
|
|
|
* @param {Reachibility} reachability The current reachability status.
|
|
|
|
*/
|
2010-09-11 03:20:34 +08:00
|
|
|
// TODO: Callback from native code not implemented for Android
|
2009-11-18 02:38:49 +08:00
|
|
|
Network.prototype.updateReachability = function(reachability) {
|
|
|
|
this.lastReachability = reachability;
|
|
|
|
};
|
2010-09-07 02:13:09 +08:00
|
|
|
|
2010-02-24 03:07:30 +08:00
|
|
|
/**
|
2010-09-11 03:20:34 +08:00
|
|
|
* Determine if a URI is reachable over the network.
|
|
|
|
|
2010-02-24 03:07:30 +08:00
|
|
|
* @param {Object} uri
|
2010-09-11 03:20:34 +08:00
|
|
|
* @param {Function} callback
|
2010-02-24 03:07:30 +08:00
|
|
|
* @param {Object} options (isIpAddress:boolean)
|
|
|
|
*/
|
2010-09-11 03:20:34 +08:00
|
|
|
Network.prototype.isReachable = function(uri, callback, options) {
|
2010-09-21 11:25:57 +08:00
|
|
|
var isIpAddress = false;
|
|
|
|
if (options && options.isIpAddress) {
|
|
|
|
isIpAddress = options.isIpAddress;
|
2010-09-07 02:13:09 +08:00
|
|
|
}
|
2010-09-21 11:25:57 +08:00
|
|
|
PhoneGap.execAsync(callback, null, "Network Status", "isReachable", [uri, isIpAddress]);
|
2010-02-24 03:07:30 +08:00
|
|
|
};
|
2010-09-07 02:13:09 +08:00
|
|
|
|
2010-02-24 03:07:30 +08:00
|
|
|
PhoneGap.addConstructor(function() {
|
|
|
|
if (typeof navigator.network == "undefined") navigator.network = new Network();
|
2010-09-11 03:20:34 +08:00
|
|
|
});
|
|
|
|
|