One Logo Pool Ball
NetworkExtension · IOS API REFERENCE

NEHotspotManager

class · iOS 26.0+ · SDK 27.1

final class NEHotspotManager

This file declares the NEHotspotManager API. The NEHotspotManager API is used to enable or disable NEHotspotEvaluationProvider and NEHotspotAuthenticationProvider. When enabled, the API allows the providers to participate in the process of joining Wi-Fi/Hotspot networks. The providers receive commands to be processed that allow them to participate in the Hotspot Network state machine. When a network is joined initially, the state machine enters the Evaluating state. In that state, each NEHotspotEvaluationProvider instance receives a command of type Evaluate. If one or more instances of NEHotspotEvaluationProvider indicates that it is able to handle the network, the one with the highest confidence level is chosen before entering the Authenticating state. As an optimization, the first instance to assert a high confidence wins and the state machine ignores the other instances. If no NEHotspotEvaluationProvider instances claims the network, the state machine enters the Authenticated state. In the Authenticating state, the NEHotspotAuthenticationProvider instance is given a command of type Authenticate. The instance is expected to perform whatever network processing is required to make the network available for general network traffic. If the authentication is successful, the instance indicates that with a Success result. The state machine enters the Authenticated state. On a network that has been authenticated by a NEHotspotAuthenticationProvider, the state machine enters the Maintaining state when the network is joined again, and also periodically while the system remains associated with the network. In the Maintaining state, the NEHotspotAuthenticationProvider instance is expected to perform whatever network operations are required to determine if the network is still able to carry general network traffic. If that is the case, the instance returns Success. If not, and authentication is again required, it returns AuthenticationRequired to cause the state machine to re-enter the Authenticating state. In the Authenticating state, if the NEHotspotAuthenticationProvider instance determines that it requires user interaction to proceed, the instance is expected to alert the user via UNUserNotificationCenter, then returns a result of UIRequired. The state machine enters the PresentingUI state. In the PresentingUI state, the NEHotspotAuthenticationProvider instance is given a command of type PresentUI. The instance continues to run in the background in PresentingUI state, and relies on its application to provide the required information collected from the user to perform the authentication. Once the authentication is completed successfully, NEHotspotAuthenticationProvider instance returns Success to enter the Authenticated state. NEHotspotEvaluationProvider may also receive a FilterScanList command at any time, in addition to an Evaluate command as described above. In its response, the NEHotspotEvaluationProvider indicates which of the networks in the scan list it can confidently handle. This API is part of NetworkExtension.framework. NEHotspotManager class declares a programmatic interface to enable or disable NEHotspotEvaluationProvider and NEHotspotAuthenticationProvider.

Members (14)

get · iOS 26.0+

safariDomains

TypeScript
get safariDomains(): Array<string>
Swift declaration
final var safariDomains: [String] { get set }

An array of domain strings. Containing App can specify these domains when it intends to use SFSafariViewController class for user interaction with the hotspot service provider's web application hosted during the hotspot authentication. This property allows maximum 10 domains.

set · iOS 26.0+

safariDomains

TypeScript
set safariDomains(value: Array<string>)
Swift declaration
final var safariDomains: [String] { get set }

An array of domain strings. Containing App can specify these domains when it intends to use SFSafariViewController class for user interaction with the hotspot service provider's web application hosted during the hotspot authentication. This property allows maximum 10 domains.

get · iOS 26.0+

evaluatedSSIDs

TypeScript
get evaluatedSSIDs(): Array<string>
Swift declaration
final var evaluatedSSIDs: [String] { get set }

An array of Wi-Fi SSID strings. This array represents pre-evaluated Wi-Fi networks. When specified, NEHotspotEvaluationProvider is not used to evaluate the Wi-Fi network. This property allows maximum two Wi-Fi networks. The specified Wi-Fi networks must be configured via NEHotspotConfiguration API.

set · iOS 26.0+

evaluatedSSIDs

TypeScript
set evaluatedSSIDs(value: Array<string>)
Swift declaration
final var evaluatedSSIDs: [String] { get set }

An array of Wi-Fi SSID strings. This array represents pre-evaluated Wi-Fi networks. When specified, NEHotspotEvaluationProvider is not used to evaluate the Wi-Fi network. This property allows maximum two Wi-Fi networks. The specified Wi-Fi networks must be configured via NEHotspotConfiguration API.

method · iOS 26.0+

saveToPreferences

TypeScript
saveToPreferences(): Promise<void>
Swift declaration
final func saveToPreferences() async throws

Save the HotspotManager configuration in the Network Extension preferences. This function throws NEHotspotManagerError value asynchronously on failure. The configuration must be loaded before calling this function.

method · iOS 26.0+

loadFromPreferences

TypeScript
loadFromPreferences(): Promise<void>
Swift declaration
final func loadFromPreferences() async throws

Load the HotspotManager configuration from the Network Extension preferences. This function throws NEHotspotManagerError value asynchronously on failure.

method · iOS 26.0+

removeFromPreferences

TypeScript
removeFromPreferences(): Promise<void>
Swift declaration
final func removeFromPreferences() async throws

Remove Hotspot configuration from the Network Extension preferences. This function throws NEHotspotManagerError value asynchronously on failure.

get · iOS 26.0+

evaluationProviderBundleIdentifier

TypeScript
get evaluationProviderBundleIdentifier(): (string) | null
Swift declaration
final var evaluationProviderBundleIdentifier: String? { get set }

Bundle identifier of the NEHotspotEvaluationProvider

set · iOS 26.0+

evaluationProviderBundleIdentifier

TypeScript
set evaluationProviderBundleIdentifier(value: (string) | null)
Swift declaration
final var evaluationProviderBundleIdentifier: String? { get set }

Bundle identifier of the NEHotspotEvaluationProvider

get · iOS 26.0+

authenticationProviderBundleIdentifier

TypeScript
get authenticationProviderBundleIdentifier(): (string) | null
Swift declaration
final var authenticationProviderBundleIdentifier: String? { get set }

Bundle identifier of the NEHotspotAuthenticationProvider

set · iOS 26.0+

authenticationProviderBundleIdentifier

TypeScript
set authenticationProviderBundleIdentifier(value: (string) | null)
Swift declaration
final var authenticationProviderBundleIdentifier: String? { get set }

Bundle identifier of the NEHotspotAuthenticationProvider

get · iOS 26.0+

shared

TypeScript
static get shared(): NEHotspotManager
Swift declaration
static var shared: NEHotspotManager { get }

Singleton instance of NEHotspotManager class

get · iOS 26.0+

isEnabled

TypeScript
get isEnabled(): boolean
Swift declaration
final var isEnabled: Bool { get set }

A Boolean value that determines enablement status of the configuration. The providers are started only when if this property is set to true.

set · iOS 26.0+

isEnabled

TypeScript
set isEnabled(value: boolean)
Swift declaration
final var isEnabled: Bool { get set }

A Boolean value that determines enablement status of the configuration. The providers are started only when if this property is set to true.

Skipped declarations

No declarations were skipped in this snapshot.

All NetworkExtension types →