Guia de início rápido: gerenciando eventos de conexão e mudanças na disponibilidade (aplicativos da Windows Store em JavaScript e HTML)

Este tópico mostra como registrar-se para notificações de eventos de alteração do estado de conexão e recuperar as informações de estado atual. Também fornecemos recomendações de comportamento de aplicativos que darão suporte a experiências de usuário consistentes em cenários de rede.

Pré-requisitos

Saber o que é um ConnectionProfile e como acessar as informações que ele representa é importante; para saber mais, veja Guia de início rápido: recuperando informações de conexão de rede. Para obter exemplos de código adicionais, baixe o exemplo de informações da rede.

Para garantir que o aplicativo da Windows Store está pronto para a rede, defina a capacidade no arquivo Package.appxmanifest do projeto. Para obter uma definição de cada recurso de rede, veja Como configurar recursos de isolamento de rede.

O que qualifica como um evento de alteração do estado de conexão?

Eventos de mudança de estado indicam mudanças na disponibilidade, no tipo ou no custo da conectividade oferecida por uma conexão individual. Os últimos aplicativos conectados frequentemente encontram cenários de passagem de rede típicos do uso de dispositivo móvel e, quando o Windows 8 detecta uma nova rede, automaticamente ele a fornece como uma nova opção de conectividade. Por exemplo, se um usuário está usando um dispositivo em uma rede 3G/4G para dados de fluxo e, posteriormente, entra no alcance de uma rede Wi-Fi, a nova opção de conectividade está disponível para o aplicativo usar. Obviamente, isso também significa que um usuário pode se mover além do alcance de uma rede, uma que pode até mesmo estar em uso.

Considerando todas essas possibilidades, há mais do que um motivo suficiente para equipar seu aplicativo com a lógica que permite escolhas inteligentes ao se deparar com alterações na disponibilidade da rede. Ainda assim, as conexões não alternarão automaticamente para outras conexões diretamente; seu aplicativo precisa ser registrado em eventos do NetworkStatusChanged e é adaptado de forma adequada.

Registrando notificações de eventos de alteração do estado de conexão

Para poder adaptar seu aplicativo às alterações de estados da rede, é necessário saber quando elas ocorrem. O código a seguir demonstra o registro para notificação de eventos NetworkStatusChange referentes a um perfil de conexão específico.


//Register for Network Status Change notifications, and display new Internet Connection Profile information on network status change
function registerForNetworkStatusChangeNotif() {
    try {

        // register for network status change notifications
        if (!registeredNetworkStatusNotif) {
            var networkInfo.addEventListener("networkstatuschanged", onNetworkStatusChange);
            registeredNetworkStatusNotif = true;
        }
    }
    catch (e) {
        print("An unexpected exception occured: " + e.name + ": " + e.message);
    }
}


Recuperando as informações de alteração de estado de conexão

Quando ocorre uma alteração de estado do perfil de conexão da Internet, o seguinte exemplo de manipulador de eventos fornece o ConnectionProfile associado ao evento e exibe informações de status de conexão, que incluem o escopo atual, o tipo e o custo de conectividade definido por NetworkConnectivityLevel, NetworkTypes e NetworkCostType.

Agora, quando ocorre uma alteração de status para o perfil de conexão com a Internet, a seguinte função de exemplo fornece o ConnectionProfile associado.


// Event handler for Network Status Change event
function onNetworkStatusChange(sender) {
    try {
        // get the ConnectionProfile that is currently used to connect to the Internet
        var internetProfile = networkInfo.getInternetConnectionProfile();
        if (internetProfile === null) {
            print("Not connected to Internet\n\r");
        }
        else {
            internetProfileInfo += getConnectionProfileInfo(internetProfile) + "\n\r";
            print(internetProfileInfo);
        }
        internetProfileInfo = "";
    }
    catch (e) {
        print("An unexpected exception occured: " + e.name + ": " + e.message);
    }
}


Comportamento recomendado do aplicativo ao controlar alterações de estado de conexão

A tabela a seguir descreve os principais cenários de alteração de estado de conexão e fornece recomendações sobre o comportamento do aplicativo:

CenárioComportamento recomendado
Perda de conexão em função de erro

As conexões podem ser restabelecidas ao tentar estabelecer a operação da rede novamente. Se falhar, aguarde um evento NetworkStatusChanged para recuperar as informações do estado de conexão atual. Nós recomendamos que os aplicativos usem um intervalo de retirada de rápido crescimento entre as repetições, começando com um valor de 50 milissegundos.

Perda de rede

Informe o usuário que a conexão foi perdida, em seguida registre e aguarde um evento NetworkStatusChanged.

Disponibilidade de nova rede

Com os dispositivos móveis, os cenários envolvendo um dispositivo passando por várias redes privadas ou públicas são comuns. Por exemplo, um usuário pode estar conectado a uma banda larga móvel e conversar com os amigos usando o aplicativo de mensagens antes ir para casa e conectar a uma rede doméstica ilimitada. A política padrão do Windows 8 é dar preferência a uma rede ilimitada e mais rápida, ao invés de uma limitada e mais lenta. No entanto, as conexões existentes estabelecidas pelo aplicativo não alternam automaticamente para uma nova rede. O aplicativo tem de se envolver, pois só ele pode decidir quando alternar para a nova rede.

Por exemplo, quando o download de um fluxo de vídeo está perto de ser concluído, não faz sentido alternar para uma nova rede e recomeçar o download. Mas quando a rede atual está removendo pacotes, está muito lenta ou o fluxo leva muito tempo para ser concluído, alternar para a nova rede pode ser a melhor opção.

Se você acha que alternar entre redes é aceitável no caso do seu aplicativo, siga estas diretrizes quando detectar uma nova rede:

1. Verifique o custo da rede e repita a operação de rede quando houver uma conexão melhor disponível. O Windows seleciona automaticamente a rede ilimitada e mais rápida, ao invés da rede limitada e mais lenta (se disponível).

2. Quando tentar novamente, se a operação de rede for bem-sucedida, cancele a operação de rede original na rede anterior (se existir).

Alteração do custo da rede

As redes móveis, em particular, costumam ter restrições muito específicas quanto ao uso. Se seu aplicativo encontrar uma alteração no custo da rede em função de um consumo de dados de banda larga móvel maior que 80%, custo variável ou roaming, adapte o comportamento do aplicativo detalhado em Guia de início rápido: gerenciando restrições de custo da rede limitada.

 

Observação  Desenvolvedores avançados também podem optar por otimizar o comportamento do aplicativo ao repetir as operações da rede. Por exemplo, você pode desejar substituir uma conexão existente por uma nova conexão em uma rede de velocidade mais alta. Neste cenário, um desenvolvedor pode usar APIs de soquetes, como StreamSocketInformation.BandwidthStatistics, para determinar se é adequado alternar para outra conexão.

Resumo

Neste tópico, revisamos como registrar notificações de alteração do estado de conexão e como usar essas notificações para recuperar informações de estado atual do ConnectionProfile para o qual ocorreu o evento. Também recuperamos o comportamento recomendado do aplicativo ao lidar com os cenários de alteração de estado mais comuns.

Embora este tópico fale sobre disponibilidade da rede, em cenários que envolvem conexões com redes limitadas, um evento NetworkStatusChanged também pode representar uma alteração no custo e nas propriedades do plano de dados. Para saber mais e obter orientação sobre a melhor opção para alterar o comportamento do aplicativo nesses cenários, veja Guia de início rápido: gerenciando restrições de custo em redes limitadas.

Tópicos relacionados

Exemplo de Informações da Rede
Guia de início rápido: recuperando informações de conexão de rede
Guia de início rápido: gerenciando restrições de custo em redes limitadas
Windows.Networking.Connectivity

 

 

Mostrar:
© 2014 Microsoft. Todos os direitos reservados.