Aplicaciones de Windows
Contraer la tabla de contenido
Expandir la tabla de contenido

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

Este tema mostrará cómo registrarte para notificaciones de eventos sobre cambios del estado de la conexión y proporciona recomendaciones sobre el comportamiento de la aplicación para que pueda usar esta información.

Requisitos previos

Es importante saber qué es un ConnectionProfile y cómo tener acceso a la información que representa. Si quieres obtener más información, consulta el tema sobre inicio rápido: recuperar información de conexión de red. Si quieres ver más ejemplos de código, descarga la muestra de información de red.

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 evento de cambio del estado de la conexión?

Los eventos de cambio de estado indican cambios en la disponibilidad, el tipo de conectividad o el costo que ofrece una conexión en particular. Las aplicaciones conectadas más recientes suelen encontrar escenarios de recorrido comunes en el uso de dispositivos móviles y cuando Windows 8 detecta una red nueva, automáticamente la dará como nueva opción de conectividad. Por ejemplo, si un usuario usa un dispositivo en una red de 3 G o 4 G para transmitir datos y más tarde entra en un rango de redes Wi-Fi, la nueva opción de conectividad estará disponible para que la aplicación pueda sacar provecho de ella. Por supuesto que esto también significa que un usuario puede salir del rango de una red, incluso, de una red que esté en uso.

Si consideras todas estas posibilidades, son más que suficientes las razones por las cuales es conveniente equipar a la aplicación con la lógica que admita opciones inteligentes ante cambios en la disponibilidad de red. Aun así las conexiones no se intercambiarán de forma sencilla; la aplicación necesita registrarse para eventos NetworkStatusChanged y adaptarse en consecuencia.

Registro para notificaciones de eventos de cambio del estado de la conexión

Antes de que la aplicación pueda adaptarse a los cambios del estado de la red, necesita saber que se producen. El siguiente código muestra el registro de la notificación de eventos NetworkStatusChange para un perfil de conexión específico.


function RegisterForNetworkStatusChangeNotification() {
    try {

        if (!registeredNetworkStatusNotification) {
            networkInfo.addEventListener("networkstatuschanged", OnNetworkStatusChange);
            registeredNetworkStatusNotification = true;
        }
        if (internetProfileInfo == "") {
            mySample.displayStatus("No network status change. ");
        }
    }
    catch (e) {
        mySample.displayError("Exception Caught: " + e + "\n\r");
    }
}


Recuperación de la información sobre cambios del estado de la conexión

Ahora, cuando se produce un cambio de estado en el perfil de conexión a Internet, la siguiente función de ejemplo proporciona el ConnectionProfile asociado. Este perfil de conexión proporciona el ámbito, el tipo y el costo actual de la conectividad tal y como definen NetworkConnectivityLevel, NetworkTypes y NetworkCostType.


function OnNetworkStatusChange(sender) {
    var internetProfileInfo = "";
    try {
        internetProfileInfo = "Network Status Changed: \n\r";

        var internetProfile = networkInfo.getInternetConnectionProfile();
        internetProfileInfo += GetConnectionProfileInfo(internetProfile) + "\n\r";
        mySample.displayStatus(internetProfileInfo);
        internetProfileInfo = "";
    }

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


Comportamiento de la aplicación recomendable para controlar cambios de estado de la conexión

Los siguientes pasos representan el comportamiento sugerido para una aplicación conectada, mientras se controlan los cambios de estado de la conexión:

  1. Comprueba los costos asociados con la conexión y después adapta el comportamiento tal y como se recomienda en el tema Inicio rápido: administrar conexiones en redes de uso medido.

  2. Regístrate para notificaciones de cambio del estado de la red.

  3. Una notificación sobre el estado modificado de la red indica que el costo disponible o las opciones de conectividad pueden haber cambiado. Cuando recibas esta notificación, haz lo siguiente:

    • Busca el costo de conexión a Internet. Si las características del costo han cambiado (libre -> costo o costo -> libre), entonces reintenta la operación de la red. Windows Developer Preview usará automáticamente la mejor red o la red de costo más bajo que esté disponible. En el reintento, si la operación de red se realiza correctamente, cancela la operación de la red original.

      Nota  Los desarrolladores avanzados también pueden elegir optimizar el comportamiento de la red cuando reintentan las operaciones de red. Por ejemplo, quizás quieras reemplazar una conexión existente por una nueva que tenga mayor velocidad. En este escenario, un desarrollador puede usar las API de sockets, como StreamSocketInformation.BandwidthStatistics, para determinar si se puede cambiar a otra conexión.

    • Si el costo característico de la conexión a Internet no ha cambiado, pero se recibe una notificación relacionada con el costo, como >80% del límite consumido, costo variable, roaming y otros, entonces adapta el comportamiento.

  4. Si la conexión que estaba usando la aplicación ya no está disponible (indicada por un error):

    • Busca el costo de conexión a Internet.

    • Reintenta la operación. Si tiene errores, espera otra notificación de eventos NetworkStatusChanged.

    Nota  La directiva predeterminada de Windows 8 es preferir una red no restringida antes que una red de uso medido y una red más rápida antes que una red más lenta.

Resumen

En este tema revisamos cómo registrarse para notificaciones de cambio del estado de conexión y cómo usar estas notificaciones para recuperar el ConnectionProfile por el cual se produjo el evento. También revisamos el comportamiento básico de una aplicación conectada ante estos cambios de estado.

Si bien aquí se cubre el escenario básico de disponibilidad de red, un evento NetworkStatusChanged también puede representar un cambio en el costo de la conexión y las propiedades del plan de datos de un ConnectionProfile. Si quieres obtener más información e instrucciones acerca de cómo proceder mejor ante estos escenarios, consulta Inicio rápido: administrar límites de costos de red de uso medido.

Temas relacionados

Ejemplo de información de red
Inicio rápido: recuperar la información de conexión de red
Inicio rápido: administrar límites de costos de red de uso medido
Windows.Networking.Connectivity

 

 

Mostrar:
© 2018 Microsoft