Spesso, un'app richiederà uno specifico stato di rete o contesto per poter essere eseguita, che sia collegata o meno ad un IP specifico, assicurandosi che si utilizzi solo una configurazione idonea o che il dispositivo sia online. AppFramework non può controllare alcune di queste funzioni al livello di sistema, ma fornisce componenti che vi accedono e possono dare informazioni sull'attività dell'app.
Configurazioni fornite dal sistema
Le configurazioni di rete sono gestite e archiviate dal dispositivo e, di norma, non è necessario gestirle da un'app. Tuttavia, nei casi in cui non è necessario che l'app conosca lo stato di collegamento di rete del dispositivo, il componente di rete fornisce un accesso di sola lettura alle configurazioni di rete conosciute dal sistema, consentendo alle app di rilevare questi collegamenti del sistema e queste capacità.
Ciò di cui molte app hanno bisogno da una rete è che consenta loro di essere online e potersi collegare ai servizi. Per verificarlo, è necessaria la proprietà isOnline, un valore booleano che visualizza se il dispositivo è online o meno in quel momento. Questa proprietà può essere usata per alterare l'attività dell'app per eseguire funzioni alterne che non richiedono un accesso alla rete o per visualizzare un messaggio di errore se è necessario il collegamento 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."
}
}
}
Indirizzi di rete
Il componente NetworkAddress archivia un unico indirizzo IP di rete. Oltre ad essere utilizzato insieme ad altri componenti per eseguire azioni quali il collegamento a un host e la configurazione di un server, fornisce anche delle proprietà per stabilire se l'indirizzo ha una finalità speciale, come il loopback o il multicast.
Il loopback fa parte di un intervallo specifico di indirizzi IP volti a inviare segnali in uscita allo stesso computer, normalmente a scopo di prova. Per i dispositivi IPv4, gli indirizzi compresi tra 127.0.0.0 e 127.255.255.255 fungono da indirizzi di loopback, tra i quali l'indirizzo più tipico è 127.0.0.1 con il nome localhost. Per IPv6, l'indirizzo riservato per il loopback è normalmente semplificato come ::1, dal momento che l'indirizzo completo è molto lungo. La proprietà booleana isLoopback di NetworkAddress sarà vera se l'indirizzo archiviato dall'oggetto è un indirizzo di loopback.
Gli indirizzi multicast sono una vasta gamma di intervalli riservati alla comunicazione multicast in cui le informazioni sono indirizzate ad un gruppo di computer di destinazione. In app costruite con AppFramework, l'uso più comune del multicast è per User Datagram Protocol (UDP), un protocollo di trasmissione che dà precedenza alla velocità sull'affidabilità, ma presenta molti altri usi. Per i dispositivi IPv4, l'intervallo di indirizzi multicast va da 224.0.0.0 a 239.255.255.255, mentre gli indirizzi multicast IPv6 usano il prefisso ff00::/8. Tuttavia, entrambi i protocolli hanno delle sezioni di tali intervalli riservati per usi più specifici di multicast. La proprietà booleana isMulticast di NetworkAddress sarà vera se l'indirizzo archiviato dall'oggetto è un qualunque tipo di indirizzo multicast.
NetworkAddress contiene anche la proprietà isNull per identificare indirizzi nulli non validi per qualunque host o interfaccia e il metodo isInSubnet per stabilire se l'indirizzo IP archiviato si trova in una determinata subnet. Queste funzioni possono essere usate per accettare solo gli indirizzi IP validi per le necessità dell'app.