多くの場合、アプリには、特定の IP に接続しているかどうかにかかわらず実行するために、特定のネットワーク ステータスやコンテキストが必要です。これによって、適切な構成のみが使用されていることやデバイスがオンラインであることが確認されます。AppFramework は、システム レベルでこれらの一部を制御することはできませんが、アプリの実行内容を通知するために、これらにアクセスできるコンポーネントを提供します。
システムが提供する構成
ネットワーク構成はデバイスによって処理および保存されますが、アプリが処理する必要は通常ありません。ただし、アプリがデバイスのネットワーク接続ステータスを把握する必要がある状況では、Network コンポーネントがシステムに認識されているネットワーク構成への読み取り専用アクセスを提供するため、アプリがこれらのシステム接続と機能を検出できます。
多くのアプリの場合、ネットワークから特に必要な情報は、オンラインであることとサービスに接続できることです。それは、デバイスが現在オンラインであるかどうかを表示するブール値である isOnline プロパティを調べるだけで確認できます。このプロパティを使用すると、アプリの振舞いを変更してネットワーク アクセスが必要でない代替関数を実行したり、オンラインであることが必要な場合にエラー メッセージを表示したりできます。
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."
}
}
}
ネットワーク アドレス
NetworkAddress コンポーネントは、1 つのネットワーク IP アドレスを格納します。これは、ホストへの接続やサーバーの設定などのアクションを実行するために他のコンポーネントと一緒に使用されますが、ループバックやマルチキャストなど、アドレスに特別な目的があるかどうかを判定するプロパティも提供します。
ループバックは IP アドレスの特定範囲の 1 つです。通常はテスト目的で、同じコンピューターに送信信号を送るために使用されます。IPv4 デバイスの場合、127.0.0.0 ~ 127.255.255.255 の範囲がループバック アドレスとして働きます。最も一般的に使用されるアドレスは 127.0.0.1 で、localhost という名前が使用されます。IPv6 の場合、完全なアドレスは非常に長いため、ループバック用に予約されたアドレスは通常 ::1 と単純化されます。NetworkAddress の isLoopback ブール値プロパティは、オブジェクトに格納されているアドレスがループバック アドレスの場合に true を返します。
マルチキャスト アドレスは、マルチキャスト通信用に予約済みの幅広いアドレスです。送信先のコンピューターのグループに情報が伝達されます。AppFramework で構築されたアプリにおけるマルチキャストの最も一般的な用途は、UDP (User Datagram Protocol) という信頼性より速度を優先する伝送プロトコルですが、他にも多くの用途があります。IPv4 デバイスの場合、マルチキャスト アドレスの範囲は 224.0.0.0 ~ 239.255.255.255 です。IPv6 のマルチキャスト アドレスは、接頭辞 ff00::/8 を使用します。ただし、どちらのプロトコルにも、これらの範囲に複数のセクションがあり、マルチキャストの特定用途のために予約されています。NetworkAddress の isMulticast ブール値プロパティは、オブジェクトによって格納されているアドレスが任意の種類のマルチキャスト アドレスの場合に true を返します。
NetworkAddress には、ホストやインターフェイスに有効ではない NULL アドレスを識別するための isNull プロパティや、格納された IP アドレスが指定のサブネット内であるかどうかを判定する isInSubnet メソッドも含まれています。これらの関数を使用すると、アプリのニーズに有効な IP アドレスのみを渡すことができます。