Bonjour,
je voudrai pouvoir vérifier la connexion Wifi à mon réseau.
Pouvez-vous m'orienter dans mer recherches?
Merci
ReachAbility?
https://cocoapods.org/?q=Reachabi
https://developer.apple.com/library/content/samplecode/Reachability/Introduction/Intro.html
Merci pour ta réponse
Après quelques heures de recherches, il me semble que le code le plus simple est celui-ci (qui semble fonctionner si j'en crois le rédacteur)
http://stackoverflow.com/questions/38779648/reachability-bug-in-xcode-8-e-swift-3
Mais je pense que je n'intègre pas correctement les fichiers "Reachability h and m classes"
Tu peu utiliser cette class qui pour moi march a merveille.
import Foundation import SystemConfiguration let ReachabilityStatusChangedNotification = "ReachabilityStatusChangedNotification" enum ReachabilityType: CustomStringConvertible { case wwan case wiFi var description: String { switch self { case .wwan: return "WWAN" case .wiFi: return "WiFi" } } } enum ReachabilityStatus: CustomStringConvertible { case offline case online(ReachabilityType) case unknown var description: String { switch self { case .offline: return "Offline" case .online(let type): return "Online (\(type))" case .unknown: return "Unknown" } } } public class Reach { func connectionStatus() -> ReachabilityStatus { var zeroAddress = sockaddr_in() zeroAddress.sin_len = UInt8(MemoryLayout<sockaddr_in>.size) zeroAddress.sin_family = sa_family_t(AF_INET) guard let defaultRouteReachability = withUnsafePointer(to: &zeroAddress, { $0.withMemoryRebound(to: sockaddr.self, capacity: 1) { SCNetworkReachabilityCreateWithAddress(nil, $0) } }) else { return .unknown } var flags : SCNetworkReachabilityFlags = [] if !SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags) { return .unknown } return ReachabilityStatus(reachabilityFlags: flags) } func monitorReachabilityChanges() { let host = "google.com" var context = SCNetworkReachabilityContext(version: 0, info: nil, retain: nil, release: nil, copyDescription: nil) let reachability = SCNetworkReachabilityCreateWithName(nil, host)! SCNetworkReachabilitySetCallback(reachability, { (_, flags, _) in let status = ReachabilityStatus(reachabilityFlags: flags) NotificationCenter.default.post(name: Notification.Name(rawValue: ReachabilityStatusChangedNotification), object: nil, userInfo: ["Status": status.description]) }, &context) SCNetworkReachabilityScheduleWithRunLoop(reachability, CFRunLoopGetMain(), RunLoopMode.commonModes as CFString) } } extension ReachabilityStatus { init(reachabilityFlags flags: SCNetworkReachabilityFlags) { let connectionRequired = flags.contains(.connectionRequired) let isReachable = flags.contains(.reachable) let isWWAN = flags.contains(.isWWAN) if !connectionRequired && isReachable { if isWWAN { self = .online(.wwan) } else { self = .online(.wiFi) } } else { self = .offline } } }
Et tu l'utilise comme ceci :
let check = Reach().connectionStatus() switch check { case .online(.wifi): //ton code case .online(.wwan): // ton code case .offline: // ton code case .unknown: //ton code default: //ton code }
Merci pour ta réponse et le code
Ca fonctionne pour moi
Juste à corriger "wiFi" F majuscule dans le switch
Jean-Luc
Je me permets encore une petite question,
puis-je vérifier le nom de mon réseau et dans quelles propriétés ?
Réponses
ReachAbility?
https://cocoapods.org/?q=Reachabi
https://developer.apple.com/library/content/samplecode/Reachability/Introduction/Intro.html
Merci pour ta réponse
Après quelques heures de recherches, il me semble que le code le plus simple est celui-ci (qui semble fonctionner si j'en crois le rédacteur)
http://stackoverflow.com/questions/38779648/reachability-bug-in-xcode-8-e-swift-3
Mais je pense que je n'intègre pas correctement les fichiers "Reachability h and m classes"
Tu peu utiliser cette class qui pour moi march a merveille.
Et tu l'utilise comme ceci :
Merci pour ta réponse et le code
Ca fonctionne pour moi
Juste à corriger "wiFi" F majuscule dans le switch
Jean-Luc
Je me permets encore une petite question,
puis-je vérifier le nom de mon réseau et dans quelles propriétés ?