Um aplicativo geralmente exigirá um status de rede ou contexto específico para executar se isto está se conectando a um IP específico, garantindo que somente uma configuração apropriada seja utilizada ou garantindo que o dispositivo esteja online. Embora o AppFramework não seja capaz de controlar alguns destes em um nível de sistema, ele fornece componentes para acessá-los para informar o que o aplicativo faz.
Configurações fornecidas pelo sistema
As configurações de rede são manipuladas e armazenadas pelo dispositivo e normalmente não precisam ser tratadas por um aplicativo. No entanto, para situações em que um aplicativo precisa estar ciente do status da conexão de rede do dispositivo, o componente de rede fornece acesso somente para leitura às configurações de rede conhecidas pelo sistema, permitindo que aplicativos detectem estas conexões e recursos do sistema.
Para muitos aplicativos, tudo o que é especificamente necessário de uma rede é estar online e poder se conectar aos serviços. Tudo o que é necessário para verificar isto é a propriedade isOnline , um valor Booleano que exibe se o dispositivo atualmente está online ou não. Esta propriedade pode ser utilizada para alterar o comportamento do aplicativo para executar funções alternativas que não exigem acesso à rede, ou para exibir uma mensagem de erro se estiver sendo solicitada online.
Column {
anchors {
left: parent.left
right: parent.right
bottom: parent.bottom
margins: 20 * AppFramework.displayScaleFactor
}
spacing: 5
Item {
height: 20
width: parent.width
}
Button {
anchors.horizontalCenter: parent.horizontalCenter
text: "Sign In"
onClicked: {
if (AppFramework.network.isOnline) {
messageDialogOnline.open();
} else {
messageDialogOffline.open();
}
}
MessageDialog {
id: messageDialogOnline
title: "Network Connection"
text: "This device is currently online."
}
MessageDialog {
id: messageDialogOffline
title: "Network Error"
text: "Please connect to a network to get started."
}
}
}
Endereços de rede
O componente NetworkAddress armazena um único endereço IP da rede. Além de ser utilizado ao lado de outros componentes para executar ações, como conectar a um host e configurar um servidor, ele também fornece propriedades para determinar se o endereço tem um propósito especial, como loopback ou multicast.
Um loopback é um de um intervalo específico de endereços IP destinados a enviar sinais de saída para o mesmo computador, normalmente para fins de teste. Para dispositivos IPv4, o intervalo de 127.0.0.0 até 127.255.255.255 atua como endereços de loopback, com o endereço mais típico utilizado sendo 127.0.0.1 e utilizando o localhost do nome. Para o IPv6, o endereço reservado para loopbacks geralmente é simplificado como :: 1, pois o endereço completo é muito longo. A propriedade isLoopback de Boleano do NetworkAddress retornará verdadeiro se o endereço armazenado pelo objeto for um endereço de loopback.
Os endereços de multicast são uma ampla gama de endereços reservados para comunicação do multicast, onde a informação é dirigida a um grupo de computadores de destino. Em aplicativos criados com o AppFramework, o uso mais comum do multicast é para o Protocolo de Datagrama do Usuário (UDP), um protocolo de transmissão que prioriza a velocidade sobre a confiabilidade, mas há muitos outros usos. Para dispositivos IPv4, a gama de endereços de multicast é de 224.0.0.0 até 239.255.255.255, enquanto os endereços IPv6 de multicast utilizam o prefixo ff00::/8. No entanto, ambos os protocolos têm seções destes intervalos reservadas para usos mais específicos do multicast. A propriedade isMulticast de Boleano do NetworkAddress retornará verdadeiro se o endereço armazenado pelo objeto for qualquer tipo de endereço do multicast.
O NetworkAddress também contém a propriedade isNull para identificar endereços nulos não válidos para qualquer host ou interface e o método isInSubnet para determinar se o endereço IP armazenado está em uma determinada subrede. Estas funções podem ser utilizadas para garantir que somente os endereços IP válidos para as necessidades do seu aplicativo sejam aprovados.