Connection
The
connection
object, exposed vianavigator.connection
, provides information about the device's cellular and wifi connection.
Properties
Constants
- Connection.UNKNOWN
- Connection.ETHERNET
- Connection.WIFI
- Connection.CELL_2G
- Connection.CELL_3G
- Connection.CELL_4G
- Connection.CELL
- Connection.NONE
Accessing the Feature
As of version 3.0, Cordova implements device-level APIs as plugins.
Use the CLI's plugin
command, described in The Command-Line
Interface, to add or remove this feature for a project:
$ cordova plugin add org.apache.cordova.network-information
$ cordova plugin ls
[ 'org.apache.cordova.network-information' ]
$ cordova plugin rm org.apache.cordova.network-information
These commands apply to all targeted platforms, but modify the platform-specific configuration settings described below:
-
Amazon Fire OS
(in app/res/xml/config.xml) <feature name="NetworkStatus"> <param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" /> </feature> (in app/AndroidManifest.xml) <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-
Android
(in app/res/xml/config.xml) <feature name="NetworkStatus"> <param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" /> </feature> (in app/AndroidManifest.xml) <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-
BlackBerry 10
(in www/config.xml) <feature name="NetworkStatus" value="NetworkStatus"/>
-
iOS (in the named application directory's
config.xml
)<feature name="NetworkStatus"> <param name="ios-package" value="CDVConnection" /> </feature>
-
Windows Phone (in
Properties/WPAppManifest.xml
)<Capabilities> <Capability Name="ID_CAP_NETWORKING" /> </Capabilities>
Reference: Application Manifest for Windows Phone
-
Tizen (in
config.xml
)<feature name="http://tizen.org/api/systeminfo" required="true"/>
Some platforms may support this feature without requiring any special configuration. See Platform Support for an overview.
connection.type
Checks the currently active network connection.
Description
This property offers a fast way to determine the device's network connection state, and type of connection.
Supported Platforms
- Amazon Fire OS
- iOS
- Android
- BlackBerry 10
- Tizen
- Windows Phone 7 and 8
- Windows 8
Quick Example
function checkConnection() {
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';
alert('Connection type: ' + states[networkState]);
}
checkConnection();
Full Example
<!DOCTYPE html>
<html>
<head>
<title>navigator.connection.type Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
checkConnection();
}
function checkConnection() {
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';
alert('Connection type: ' + states[networkState]);
}
</script>
</head>
<body>
<p>A dialog box will report the network state.</p>
</body>
</html>
API Change
Until Cordova 2.3.0, the Connection
object was accessed via
navigator.network.connection
, after which it was changed to
navigator.connection
to match the W3C specification. It's still
available at its original location, but is deprecated and will
eventually be removed.
iOS Quirks
- iOS can't detect the type of cellular network connection.
-
navigator.connection.type
is set toConnection.CELL
for all cellular data.
-
Windows Phone Quirks
When running in the emulator, always detects
navigator.connection.type
asConnection.UNKNOWN
.-
Windows Phone can't detect the type of cellular network connection.
-
navigator.connection.type
is set toConnection.CELL
for all cellular data.
-
Tizen Quirks
- Tizen can only detect a WiFi or cellular connection.
-
navigator.connection.type
is set toConnection.CELL_2G
for all cellular data.
-