Mon 21 Jul 22:43:21 CEST 2025
This commit is contained in:
		
							parent
							
								
									9a11388500
								
							
						
					
					
						commit
						6ce725e76f
					
				|  | @ -0,0 +1,206 @@ | |||
| // AFNetworkReachabilityManager.h
 | ||||
| // Copyright (c) 2011–2016 Alamofire Software Foundation ( http://alamofire.org/ )
 | ||||
| //
 | ||||
| // Permission is hereby granted, free of charge, to any person obtaining a copy
 | ||||
| // of this software and associated documentation files (the "Software"), to deal
 | ||||
| // in the Software without restriction, including without limitation the rights
 | ||||
| // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | ||||
| // copies of the Software, and to permit persons to whom the Software is
 | ||||
| // furnished to do so, subject to the following conditions:
 | ||||
| //
 | ||||
| // The above copyright notice and this permission notice shall be included in
 | ||||
| // all copies or substantial portions of the Software.
 | ||||
| //
 | ||||
| // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | ||||
| // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | ||||
| // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | ||||
| // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | ||||
| // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | ||||
| // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 | ||||
| // THE SOFTWARE.
 | ||||
| 
 | ||||
| #import <Foundation/Foundation.h> | ||||
| 
 | ||||
| #if !TARGET_OS_WATCH | ||||
| #import <SystemConfiguration/SystemConfiguration.h> | ||||
| 
 | ||||
| typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) { | ||||
|     AFNetworkReachabilityStatusUnknown          = -1, | ||||
|     AFNetworkReachabilityStatusNotReachable     = 0, | ||||
|     AFNetworkReachabilityStatusReachableViaWWAN = 1, | ||||
|     AFNetworkReachabilityStatusReachableViaWiFi = 2, | ||||
| }; | ||||
| 
 | ||||
| NS_ASSUME_NONNULL_BEGIN | ||||
| 
 | ||||
| /**
 | ||||
|  `AFNetworkReachabilityManager` monitors the reachability of domains, and addresses for both WWAN and WiFi network interfaces. | ||||
| 
 | ||||
|  Reachability can be used to determine background information about why a network operation failed, or to trigger a network operation retrying when a connection is established. It should not be used to prevent a user from initiating a network request, as it's possible that an initial request may be required to establish reachability. | ||||
| 
 | ||||
|  See Apple's Reachability Sample Code ( https://developer.apple.com/library/ios/samplecode/reachability/ )
 | ||||
| 
 | ||||
|  @warning Instances of `AFNetworkReachabilityManager` must be started with `-startMonitoring` before reachability status can be determined. | ||||
|  */ | ||||
| @interface AFNetworkReachabilityManager : NSObject | ||||
| 
 | ||||
| /**
 | ||||
|  The current network reachability status. | ||||
|  */ | ||||
| @property (readonly, nonatomic, assign) AFNetworkReachabilityStatus networkReachabilityStatus; | ||||
| 
 | ||||
| /**
 | ||||
|  Whether or not the network is currently reachable. | ||||
|  */ | ||||
| @property (readonly, nonatomic, assign, getter = isReachable) BOOL reachable; | ||||
| 
 | ||||
| /**
 | ||||
|  Whether or not the network is currently reachable via WWAN. | ||||
|  */ | ||||
| @property (readonly, nonatomic, assign, getter = isReachableViaWWAN) BOOL reachableViaWWAN; | ||||
| 
 | ||||
| /**
 | ||||
|  Whether or not the network is currently reachable via WiFi. | ||||
|  */ | ||||
| @property (readonly, nonatomic, assign, getter = isReachableViaWiFi) BOOL reachableViaWiFi; | ||||
| 
 | ||||
| ///---------------------
 | ||||
| /// @name Initialization
 | ||||
| ///---------------------
 | ||||
| 
 | ||||
| /**
 | ||||
|  Returns the shared network reachability manager. | ||||
|  */ | ||||
| + (instancetype)sharedManager; | ||||
| 
 | ||||
| /**
 | ||||
|  Creates and returns a network reachability manager with the default socket address. | ||||
|   | ||||
|  @return An initialized network reachability manager, actively monitoring the default socket address. | ||||
|  */ | ||||
| + (instancetype)manager; | ||||
| 
 | ||||
| /**
 | ||||
|  Creates and returns a network reachability manager for the specified domain. | ||||
| 
 | ||||
|  @param domain The domain used to evaluate network reachability. | ||||
| 
 | ||||
|  @return An initialized network reachability manager, actively monitoring the specified domain. | ||||
|  */ | ||||
| + (instancetype)managerForDomain:(NSString *)domain; | ||||
| 
 | ||||
| /**
 | ||||
|  Creates and returns a network reachability manager for the socket address. | ||||
| 
 | ||||
|  @param address The socket address (`sockaddr_in6`) used to evaluate network reachability. | ||||
| 
 | ||||
|  @return An initialized network reachability manager, actively monitoring the specified socket address. | ||||
|  */ | ||||
| + (instancetype)managerForAddress:(const void *)address; | ||||
| 
 | ||||
| /**
 | ||||
|  Initializes an instance of a network reachability manager from the specified reachability object. | ||||
| 
 | ||||
|  @param reachability The reachability object to monitor. | ||||
| 
 | ||||
|  @return An initialized network reachability manager, actively monitoring the specified reachability. | ||||
|  */ | ||||
| - (instancetype)initWithReachability:(SCNetworkReachabilityRef)reachability NS_DESIGNATED_INITIALIZER; | ||||
| 
 | ||||
| ///--------------------------------------------------
 | ||||
| /// @name Starting & Stopping Reachability Monitoring
 | ||||
| ///--------------------------------------------------
 | ||||
| 
 | ||||
| /**
 | ||||
|  Starts monitoring for changes in network reachability status. | ||||
|  */ | ||||
| - (void)startMonitoring; | ||||
| 
 | ||||
| /**
 | ||||
|  Stops monitoring for changes in network reachability status. | ||||
|  */ | ||||
| - (void)stopMonitoring; | ||||
| 
 | ||||
| ///-------------------------------------------------
 | ||||
| /// @name Getting Localized Reachability Description
 | ||||
| ///-------------------------------------------------
 | ||||
| 
 | ||||
| /**
 | ||||
|  Returns a localized string representation of the current network reachability status. | ||||
|  */ | ||||
| - (NSString *)localizedNetworkReachabilityStatusString; | ||||
| 
 | ||||
| ///---------------------------------------------------
 | ||||
| /// @name Setting Network Reachability Change Callback
 | ||||
| ///---------------------------------------------------
 | ||||
| 
 | ||||
| /**
 | ||||
|  Sets a callback to be executed when the network availability of the `baseURL` host changes. | ||||
| 
 | ||||
|  @param block A block object to be executed when the network availability of the `baseURL` host changes.. This block has no return value and takes a single argument which represents the various reachability states from the device to the `baseURL`. | ||||
|  */ | ||||
| - (void)setReachabilityStatusChangeBlock:(nullable void (^)(AFNetworkReachabilityStatus status))block; | ||||
| 
 | ||||
| @end | ||||
| 
 | ||||
| ///----------------
 | ||||
| /// @name Constants
 | ||||
| ///----------------
 | ||||
| 
 | ||||
| /**
 | ||||
|  ## Network Reachability | ||||
| 
 | ||||
|  The following constants are provided by `AFNetworkReachabilityManager` as possible network reachability statuses. | ||||
| 
 | ||||
|  enum { | ||||
|  AFNetworkReachabilityStatusUnknown, | ||||
|  AFNetworkReachabilityStatusNotReachable, | ||||
|  AFNetworkReachabilityStatusReachableViaWWAN, | ||||
|  AFNetworkReachabilityStatusReachableViaWiFi, | ||||
|  } | ||||
| 
 | ||||
|  `AFNetworkReachabilityStatusUnknown` | ||||
|  The `baseURL` host reachability is not known. | ||||
| 
 | ||||
|  `AFNetworkReachabilityStatusNotReachable` | ||||
|  The `baseURL` host cannot be reached. | ||||
| 
 | ||||
|  `AFNetworkReachabilityStatusReachableViaWWAN` | ||||
|  The `baseURL` host can be reached via a cellular connection, such as EDGE or GPRS. | ||||
| 
 | ||||
|  `AFNetworkReachabilityStatusReachableViaWiFi` | ||||
|  The `baseURL` host can be reached via a Wi-Fi connection. | ||||
| 
 | ||||
|  ### Keys for Notification UserInfo Dictionary | ||||
| 
 | ||||
|  Strings that are used as keys in a `userInfo` dictionary in a network reachability status change notification. | ||||
| 
 | ||||
|  `AFNetworkingReachabilityNotificationStatusItem` | ||||
|  A key in the userInfo dictionary in a `AFNetworkingReachabilityDidChangeNotification` notification. | ||||
|  The corresponding value is an `NSNumber` object representing the `AFNetworkReachabilityStatus` value for the current reachability status. | ||||
|  */ | ||||
| 
 | ||||
| ///--------------------
 | ||||
| /// @name Notifications
 | ||||
| ///--------------------
 | ||||
| 
 | ||||
| /**
 | ||||
|  Posted when network reachability changes. | ||||
|  This notification assigns no notification object. The `userInfo` dictionary contains an `NSNumber` object under the `AFNetworkingReachabilityNotificationStatusItem` key, representing the `AFNetworkReachabilityStatus` value for the current network reachability. | ||||
| 
 | ||||
|  @warning In order for network reachability to be monitored, include the `SystemConfiguration` framework in the active target's "Link Binary With Library" build phase, and add `#import <SystemConfiguration/SystemConfiguration.h>` to the header prefix of the project (`Prefix.pch`). | ||||
|  */ | ||||
| FOUNDATION_EXPORT NSString * const AFNetworkingReachabilityDidChangeNotification; | ||||
| FOUNDATION_EXPORT NSString * const AFNetworkingReachabilityNotificationStatusItem; | ||||
| 
 | ||||
| ///--------------------
 | ||||
| /// @name Functions
 | ||||
| ///--------------------
 | ||||
| 
 | ||||
| /**
 | ||||
|  Returns a localized string representation of an `AFNetworkReachabilityStatus` value. | ||||
|  */ | ||||
| FOUNDATION_EXPORT NSString * AFStringFromNetworkReachabilityStatus(AFNetworkReachabilityStatus status); | ||||
| 
 | ||||
| NS_ASSUME_NONNULL_END | ||||
| #endif | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user