Conexión
El objeto de
connection, expuesto a través denavigator.connection, proporciona información sobre conexión celular y wifi del dispositivo.
Propiedades
Constantes
- Connection.UNKNOWN
- Connection.ETHERNET
- Connection.WIFI
- Connection.CELL_2G
- Connection.CELL_4G
- Connection.CELL_3G
- Connection.CELL
- Connection.NONE
Acceso a la función
A partir de la versión 3.0, Cordova implementa nivel de dispositivo APIs como plugins. Uso de la CLI plugin comando, que se describe en la interfaz de línea de comandos, para añadir o eliminar esta característica para un proyecto:
$ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git
$ cordova plugin rm org.apache.cordova.core.network-information
Estos comandos se aplican a todas las plataformas específicas, sino modificar las opciones de configuración específicas de la plataforma que se describen a continuación:
-
Android
(in app/res/xml/config.xml) <feature name="NetworkStatus"> <param name="android-package" value="org.apache.cordova.NetworkManager" /> </feature> (in app/AndroidManifest.xml) <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> -
BlackBerry WebWorks
(in www/plugins.xml) <feature name="Network Status"> <param name="blackberry-package" value="org.apache.cordova.network.Network" /> </feature> -
(en iOS
config.xml)<feature name="NetworkStatus"> <param name="ios-package" value="CDVConnection" /> </feature> -
Windows Phone (en
Properties/WPAppManifest.xml)<Capabilities> <Capability Name="ID_CAP_NETWORKING" /> </Capabilities>Referencia: manifiesto de aplicación para Windows Phone
-
Tizen (en
config.xml)<feature name="http://tizen.org/api/systeminfo" required="true"/>Referencia: aplicación manifiesto de aplicación Web Tizen
Algunas plataformas que soportan esta característica sin necesidad de ninguna configuración especial. Ver soporte de plataforma para tener una visión general.
connection.type
Comprueba la conexión de red activa.
Descripción
Esta propiedad ofrece una forma rápida de determinar el estado de conexión de red del dispositivo y el tipo de conexión.
Plataformas soportadas
- iOS
- Android
- BlackBerry WebWorks (OS 5.0 y superiores)
- Tizen
- Windows Phone 7 y 8
- Windows 8
Ejemplo rápido
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();
Ejemplo completo
<!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>
Cambio de API
Hasta Cordova 2.3.0, el objeto de conexión era acceder a través de navigator.network.connection, tras lo cual fue cambiada a navigator.connection para que coincida con la especificación del W3C. Sigue estando disponible en su ubicación original, pero es obsoleto y eventualmente desaparecerá.
iOS rarezas
- iOS no puede detectar el tipo de conexión de red celular.
-
navigator.connection.typeis set toConnection.CELLfor all cellular data.
-
Windows Phone rarezas
When running in the emulator, always detects
navigator.connection.typeasConnection.UNKNOWN.-
Windows Phone no puede detectar el tipo de conexión de red celular.
-
navigator.connection.typeis set toConnection.CELLfor all cellular data.
-
Rarezas Tizen
- Tizen sólo puede detectar un Wi-Fi o conexión celular.
-
navigator.connection.typeis set toConnection.CELL_2Gfor all cellular data.
-