Vérifier la connexion à internet (iOS 10)
Pour iOS 9 j'ai été en utilisant l'Accessibilité par le public de la classe pour vérifier si le périphérique est connecté à internet ou pas. J'ai converti ma Swift 2 code Swift 3, et de l'Accessibilité ne fonctionne plus. Quelqu'un peut me dire comment faire pour vérifier la connexion internet sur iOS 10? Merci!
Voici l'extrait de code:
open class Reachability {
class func isConnectedToNetwork() -> Bool {
var zeroAddress = sockaddr_in()
zeroAddress.sin_len = UInt8(MemoryLayout.size(ofValue: zeroAddress))
zeroAddress.sin_family = sa_family_t(AF_INET)
let defaultRouteReachability = withUnsafePointer(to: &zeroAddress) {
SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0))
}
var flags = SCNetworkReachabilityFlags()
if !SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) {
return false
}
let isReachable = (flags.rawValue & UInt32(kSCNetworkFlagsReachable)) != 0
let needsConnection = (flags.rawValue & UInt32(kSCNetworkFlagsConnectionRequired)) != 0
return (isReachable && !needsConnection)
}
}
- voir stackoverflow.com/questions/39046377/...
- Veuillez noter que stackoverflow.com/questions/25623272/... a été mis à jour pour Swift 3.
- Je pense que cela va vous aider avec votre Q: stackoverflow.com/a/39783037/4301118
- Voir alamofire réponse - stackoverflow.com/a/46562290/7576100
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne sous iOS 10
SWIFT 3.0:
Voici un moyen très simple de le faire:
et puis tout simplement, vous pouvez l'utiliser n'importe où dans votre projet pour exemple:
Essayez, ça marche pour moi
première importation la SystemConfiguration à votre classe.
Et maintenant mettre en place le soufflet de la fonction.
flags.contains(.reachable)
etflags.contains(.connectionRequired)
. Oui, je suis en utilisant Swift 3.étape 1 : créer rapidement un fichier dans votre projet. j'ai créé "ConnectionCheck.swift"
étape 2 : ajouter ce code dans votre "ConnectionCheck.swift" et "importer SystemConfiguration" fichier "ConnectionCheck.swift" et "ViewController.swift"
}
étape 3 : Maintenant, dans "ViewController.swift" utiliser ce code pour vérifier la Joignabilité du Réseau
Voici Swift 3 solution via la fonction de rappel,
isConnectedToNetwork()
est prise à partir de la solution par Yasin Ugurlu à partir de ci-dessus.Ce code serait utile pour vous. il a travaillé pour moi dans Swift 4 et Xcode 9
Aller à https://github.com/ashleymills/Reachability.swift/tree/master/Reachability
et la copie de l'Accessibilité.swift fichier à votre projet
Vasil Nunev expliquer clairement ce Joignabilité
https://www.youtube.com/watch?v=wDZmz9IsB-8
Swift 4 /Xcode 10:
Je voudrais combiner les deux fonctions ( avec un peu de changements) sont prises à partir de solutions par @Pavle Mijatovic et @Krutagn Patel (avec grâce) pour répondre à @Lance Samarie question. 🙂
J'ai presque vérifié toutes les possibilités. (le code peut être amélioré, mais il fonctionne très bien)
avoir une classe comme ci-dessous:
utiliser le code ci-dessous où vous en avez besoin pour vérifier la connexion Internet: par exemple, dans appDelegate -> applicationDidBecomeActive fonction.
explication: à chaque fois que completionHandler fonction (ci-dessus) est appelée, le résultat (vrai ou faux) est passé au-dessous de code
b
. donc, si b est vrai que vous avez la connexion Internet.Vous pouvez utiliser dans swift 3
1) Créer une nouvelle Swift fichier dans votre projet, nommez-la “Joignabilité.swift”.
2) Cut & collez le code suivant pour créer votre classe.
3) Vous pouvez vérifier la connexion internet de n'importe où dans votre projet à l'aide de ce code:
4)Si l'utilisateur n'est pas connecté à internet, vous pouvez afficher une boîte de dialogue d'alerte pour les informer.
Swift 4/Xcode 9+ (faire de l'Accessibilité.swift fichier):
utilisation:
Créer rapidement un fichier dans votre projet, nommez-le: l'Accessibilité.swift".
puis collez code ci-dessous dans cette Accessibilité.swift fichier:-
Alors vous pouvez vérifier l'internet n'importe où dans le projet à l'aide de code ci-dessous
Une autre solution pour Swift 4.0. Pas un grand fan o IUO plutôt l'utilisation d'un garde