Guia de início rápido: recuperando informações de conexão de rede (aplicativos da Windows Store em JavaScript e HTML)

Este tópico mostrará a você como recuperar detalhes de conectividade e informações de uso para conexões da rede em um dispositivo.

Pré-requisitos

Os exemplos a seguir usam JavaScript e se baseiam na Amostra de informações de rede. Para obter ajuda para criar seu primeiro aplicativo, consulte Criar seu primeiro aplicativo da Windows Store em JavaScript.

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 é um perfil de conexão?

Um ConnectionProfile representa uma única conexão de rede estabelecida em um dispositivo. As informações acessadas de um ConnectionProfile podem ser usadas para determinar o nível da conectividade atual, acompanhar o uso de dados ou para identificar o adaptador de rede usado para manter a conexão. Ao se registrar para receber notificações de alterações nas propriedade do ConnectionProfile, o aplicativo da Windows Store conectado pode fazer as escolher certas para adaptar o comportamento às alterações feitas em um ambiente de rede. Para saber mais sobre como se registrar para receber notificações sobre essas mudanças, veja Guia de início rápido: gerenciando eventos de conexão e mudanças na disponibilidade.

Para cenários mais especializados, como aplicativos conectados para dispositivos móveis que frequentemente usam perfil móvel e operam em redes limitadas, um ConnectionProfile oferece informações de custo e de plano de dados que podem ser usadas para impedir taxas inesperadas de serviço da operadora. Para saber mais, veja Guia de início rápido: gerenciando restrições de custo em redes limitadas.

Recuperando perfis de conexão

Primeiro, definimos algumas variáveis, uma instância do NetworkInformation, que define os métodos usados pelo aplicativo para recuperar um ConnectionProfile. Em seguida, uma instância do NetworkCostType, que define os possíveis tipos de custo da rede expressos por um ConnectionProfile.

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

A classe NetworkInformation define dois métodos para recuperação do ConnectionProfile. O método GetInternetConnectionProfile retornará apenas o perfil associado à conexão com a Internet.

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

Chamar o método GetConnectionProfiles recupera perfis para todas as conexões estabelecidas atualmente no dispositivo, incluindo a conexão com 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");
    }
}

Acessando informações de um perfil de conexão

Em cada ConnectionProfile, as informações de conexão a seguir podem ser acessadas:

Dados Fornecidos por Descrição

Custo de conexão

ConnectionCost

Fornece detalhes das informações de custo de conexão, incluindo informações de limite de dados e de roaming.

Tipo de Custo

NetworkCostType

Indica o tipo de custo da rede utilizada atualmente pela conexão.

Status e Utilização do Plano de Dados

DataPlanStatus, DataPlanUsage

Fornece informações de utilização específicas para o plano de dados associado com a conexão.

Uso Local

DataUsage

Fornece informações de uso da conexão local.

Adaptador de Rede

NetworkAdapter

Identifica o adaptador de rede que fornece conectividade para a conexão.

 

Quando um ConnectionProfile é transmitido, a seguinte função de exemplo chama os métodos definidos pelo objeto para recuperar informações de estado e uso da conexão.

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;
}

Resumo

Neste tópico, revisamos como recuperar perfis de conexão, bem como as informações de conectividade que cada perfil contém. Usar essas informações para ajudar o aplicativo a fazer as escolhas certas é essencial para uma experiência de conexão confiável.

Para obter diretrizes adicionais e conhecer as práticas recomendadas para usar informações de conexão para orientar o comportamento do aplicativo conectado em rede, veja Guia de início rápido: gerenciando eventos de conexão e mudanças na disponibilidade.

Tópicos relacionados

Amostra de Informações da rede

Guia de início rápido: gerenciando eventos de conexão e mudanças na disponibilidade

Como recuperar dados de uso da conexão para um período específico

Como recuperar um adaptador de rede e informações de localidade