uid |
---|
Uno.Features.WNetworking |
Tip
This article covers Uno-specific information for the Windows.Networking
namespace. For a full description of the feature and instructions on using it, see Windows.Networking Namespace.
- The
Windows.Networking
namespace provides classes for accessing and managing network connections from your app.
Feature | Windows | Android | iOS | Web (WASM) | macOS | Linux (Skia) | Win 7 (Skia) |
---|---|---|---|---|---|---|---|
GetInternetConnectionProfile |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
NetworkStatusChanged |
✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
If you're working with network connectivity in your app, watch our detailed video tutorial for more guidance:
Android can recognize all values of NetworkConnectivityLevel
. iOS, macOS, and WASM return either None
or InternetAccess
.
The android.permission.ACCESS_NETWORK_STATE
permission is required. It can be added to the application manifest or with the following attribute in the Android platform head:
[assembly: UsesPermission("android.permission.ACCESS_NETWORK_STATE")]
On iOS and macOS, it is required to make an actual "ping" request, to verify that internet connection is accessible. The default domain that is checked is www.example.com
, but you can change this to be any other domain by setting the WinRTFeatureConfiguration.NetworkInformation.ReachabilityHostname
property.
You can use the following snippet to check for internet connectivity level in a cross-platform manner:
var profile = NetworkInformation.GetInternetConnectionProfile();
if (profile == null)
{
// No connection
}
else
{
var level = profile.GetNetworkConnectivityLevel();
// level is a value of NetworkConnectivityLevel enum
}
You can use the following snippet to observe changes in connectivity:
var profile = NetworkInformation.GetInternetConnectionProfile();
profile.NetworkStatusChanged += NetworkInformation_NetworkStatusChanged;
profile.NetworkStatusChanged -= NetworkInformation_NetworkStatusChanged;