Inicio rápido: Recuperar información de conexión de red (aplicaciones de la Tienda Windows con JavaScript y HTML)

En este tema se muestra cómo recuperar los detalles de conexión y la información de uso de las conexiones de red de un dispositivo.

Requisitos previos

Los siguientes ejemplos usan JavaScript y se basan en la muestra de información de red. Si necesitas ayuda para crear tu primera aplicación, consulta el tema sobre cómo crear tu primera aplicación de la Tienda Windows con JavaScript.

Para asegurarte de que la aplicación de la Tienda Windows está lista para la red, debes establecer la funcionalidad en el archivo Package.appxmanifest del proyecto. Para obtener una definición de cada funcionalidad de red, consulta el tema sobre el procedimiento para configurar las funcionalidades de aislamiento de red.

¿Qué es un perfil de conexión?

Un ConnectionProfile representa una única conexión de red establecida en un dispositivo. La información a la que se accede desde un ConnectionProfile puede usarse para determinar el nivel de conectividad actual, hacer un seguimiento del uso de los datos o para identificar el adaptador de red que se usa para mantener la conexión. Si te registras para recibir notificaciones sobre los cambios en las propiedades del ConnectionProfile, la aplicación de la Tienda Windows conectada puede realizar las elecciones correctas cuando adapte su comportamiento a los cambios en un entorno de red. Para obtener más información sobre cómo registrarte para recibir notificaciones de estos cambios, consulta Inicio rápido: administrar eventos de conexión y cambios de disponibilidad.

En escenarios más especializados, como aplicaciones conectadas para dispositivos móviles que utilizan perfiles móviles con frecuencia y operan en redes de uso medido, un ConnectionProfile ofrece información del plan de datos y del costo que puede emplearse para evitar tarifas de servicio de operador inesperadas. Para obtener más información, consulta Inicio rápido: administrar límites de costos de red de uso medido.

Recuperación de perfiles de conexión

Primero, definamos algunas variables. Una instancia de NetworkInformation, que define los métodos que la aplicación usa para recuperar un ConnectionProfile. Después, una instancia de NetworkCostType, que define posibles tipos de costos de red expresados por un ConnectionProfile.

var networkInfo = Windows.Networking.Connectivity.NetworkInformation;
var networkCostInfo = Windows.Networking.Connectivity.NetworkCostType;

La clase NetworkInformation define dos métodos para la recuperación de ConnectionProfile. El método GetInternetConnectionProfile solo devuelve el perfil asociado con la conexión a Internet.

function DisplayInternetConnectionProfileInfo() {
    try {
        var internetProfile = networkInfo.getInternetConnectionProfile();
        mySample.displayStatus(GetConnectionProfileInfo(internetProfile));
    }
    catch (e) {
        mySample.displayError("Exception Caught: " + e + "\n\r");
    }
}

Al llamar al método GetConnectionProfiles, se recuperan perfiles para todas las conexiones que están actualmente establecidas en el dispositivo, incluida la conexión a Internet.

function DisplayConnectionProfileList() {
    var profileList = "";
    try {
        var ConnectionProfiles = networkInfo.getConnectionProfiles();
        if (ConnectionProfiles.length != 0) {
            for (var i = 0; i < ConnectionProfiles.length; i++) {

                profileList += GetConnectionProfileInfo(ConnectionProfiles[i]);
                profileList += "----------------------------------------------------------------\n\r";
            }
            mySample.displayStatus(profileList);
        }
        else {
            mySample.displayStatus("No profiles found");
        }
    }

    catch (e) {
        mySample.displayError("Exception Caught: " + e + "\n\r");
    }
}

Acceso a información desde un perfil de conexión

Desde cada ConnectionProfile, se puede tener acceso a la siguiente información sobre la conexión:

Datos Suministrados por Descripción

Costo de conexión

ConnectionCost

Proporciona información detallada sobre el costo de conexión, incluso información de roaming y límites de datos.

Tipo de costo

NetworkCostType

Indica el tipo de costo de la red que está usando actualmente la conexión.

Uso y estado del plan de datos

DataPlanStatus, DataPlanUsage

Ofrece información de uso específica del plan de datos asociado con la conexión.

Uso local

DataUsage

Proporciona información sobre el uso de la conexión local.

Adaptador de red

NetworkAdapter

Identifica el adaptador de red que proporciona conectividad para la conexión.

 

Cuando se pasa un ConnectionProfile, la siguiente función de ejemplo llama a los métodos definidos por el objeto para recuperar la información sobre el uso y el estado de la conexión.

function GetConnectionProfileInfo(connectionProfile) {

    try {
        if (connectionProfile == null) {
            return "";
        }

        var returnString = "ProfileName: " + connectionProfile.profileName + "\n\r";
        returnString += "Connected: " + connectionProfile.connected + "\n\r";

        //Display Connection cost info
        returnString += "Connection Cost Information:\n\r";
        returnString += "===============\n\r";
        var connectionCost = connectionProfile.getConnectionCost();
        returnString += "Cost Type: " + GetCostType(connectionCost.networkCostType) + "\n\r";
        returnString += "Roaming: " + connectionCost.roaming + "\n\r";
        returnString += "Over Datalimit: " + connectionCost.overDataLimit + "\n\r";
        returnString += "Approaching Datalimit: " + connectionCost.approachingDataLimit + "\n\r";

        //Display Dataplan status info
        returnString += "Dataplan Status Information:\n\r";
        returnString += "===============\n\r";
        var dataPlanStatus = connectionProfile.getDataPlanStatus();
        if (dataPlanStatus.dataPlanUsage != null) {
            returnString += "Usage In Megabytes: " + dataPlanStatus.dataPlanUsage.megabytesUsed + "\n\r";
            returnString += "Last Sync Time: " + dataPlanStatus.dataPlanUsage.lastSyncTime + "\n\r";
        }
        else {
            returnString += "Dataplan Usage: " + "Not Defined" + "\n\r";
        }

        if (dataPlanStatus.InboundBitsPerSecond != null) {
            returnString += "Inbound Bits Per Second: " + dataPlanStatus.InboundBitsPerSecond + "\n\r";
        }
        else {
            returnString += "Inbound Bits Per Second: " + "Not Defined" + "\n\r";
        }

        if (dataPlanStatus.OutboundBitsPerSecond != null) {
            returnString += "Outbound Bits Per Second: " + dataPlanStatus.OutboundBitsPerSecond + "\n\r";
        }
        else {
            returnString += "Outbound Bits Per Second: " + "Not Defined" + "\n\r";
        }

        if (dataPlanStatus.dataLimitInMegabytes != null) {
            returnString += "Data Limit In Megabytes: " + dataPlanStatus.dataLimitInMegabytes + "\n\r";
        }
        else {
            returnString += "Data Limit In Megabytes: " + "Not Defined" + "\n\r";
        }

        if (dataPlanStatus.nextBillingCycle != null) {
            returnString += "Next Billing Cycle: " + dataPlanStatus.nextBillingCycle + "\n\r";
        }
        else {
            returnString += "Next Billing Cycle: " + "Not Defined" + "\n\r";
        }

        if (dataPlanStatus.maxDownloadFileSizeInMegabytes != null) {
            returnString += "Maximum Download File Size in Megabytes: " + dataPlanStatus.maxDownloadFileSizeInMegabytes + "\n\r";
        }
        else {
            returnString += "Maximum Download File Size in Megabytes: " + "Not Defined" + "\n\r";
        }
        returnString += "Cost Based Suggestions: " + CostBasedSuggestions(connectionCost) + "\n\r";
    }

    catch (e) {
        mySample.displayError("Exception Caught: " + e + "\n\r");
    }

    return returnString;
}

Resumen

En este tema, revisamos cómo recuperar perfiles de conexión y la información de conectividad que contiene cada perfil. Usar esta información para que la aplicación realice las elecciones acertadas es fundamental para garantizar la confiabilidad de la conexión.

Para obtener instrucciones adicionales y procedimientos recomendados para usar la información de conexión para guiar el comportamiento de tu aplicación en red, consulta Inicio rápido: administrar eventos de conexión y cambios de disponibilidad.

Temas relacionados

Ejemplo de información de red

Inicio rápido: administrar eventos de conexión y cambios de disponibilidad

Cómo recuperar datos del uso de la conexión en un período de tiempo determinado.

Cómo recuperar información de localidad y adaptador de red