Gibt es eine Möglichkeit zu überprüfen, ob die Internetverbindung mit Swift verfügbar ist?
Ich weiß, dass es viele Bibliotheken von Drittanbietern gibt, die dies tun, aber alle sind in Objective-C geschrieben. Ich suche eine schnelle Alternative.
ios
swift
network-connection
Isuru
quelle
quelle
Antworten:
Wie in den Kommentaren erwähnt, wollte ich eine reinere Swift-Lösung, obwohl es möglich ist, Objective-C-Bibliotheken in Swift zu verwenden. Die vorhandene Apple Reachability-Klasse und andere Bibliotheken von Drittanbietern schienen mir zu kompliziert, um sie in Swift zu übersetzen. Ich habe noch ein bisschen gegoogelt und bin auf diesen Artikel gestoßen, der eine einfache Methode zum Überprüfen der Netzwerkverfügbarkeit zeigt. Ich machte mich daran, dies in Swift zu übersetzen. Ich habe viele Probleme gelöst, aber dank Martin R von StackOverflow habe ich es geschafft, sie zu beheben und endlich eine praktikable Lösung in Swift zu finden. Hier ist der Code.
Für Swift> 3.0
Dies funktioniert sowohl für 3G- als auch für WiFi-Verbindungen. Ich habe es auch mit einem funktionierenden Beispiel auf meinen GitHub hochgeladen .
quelle
isConnectedToNetwork
true zurückgegeben, aber ich kann meinen Webdienst nicht anrufenIch gebe dir einen besseren Weg ...
Sie müssen eine Klasse mit diesem Code erstellen
Mit diesem Code können Sie die Internetverbindung an einer beliebigen Stelle in Ihrem Projekt überprüfen:
Sehr leicht!
* Dieser Weg basiert auf der Antwort von Vikram Pote!
quelle
Für Swift 3.1 (iOS 10.1)
Wenn Sie zwischen dem Netzwerktyp (z. B. WLAN oder WWAN) unterscheiden möchten:
Sie können verwenden:
Hier ist die gesamte Erreichbarkeitsklasse, die zwischen Netzwerktypen unterschied:
quelle
Da sendSynchronousRequest veraltet ist, habe ich dies versucht, aber 'return Status' wurde aufgerufen, bevor die Antwort beendet war.
Diese Antwort funktioniert jedoch gut. Überprüfen Sie, ob eine Internetverbindung mit Swift besteht
Folgendes habe ich trotzdem versucht:
quelle
SWIFT 3: Überprüft die WLAN- und Internetverbindung :
VERWENDUNG:
quelle
public func isConnectedToNetwork() {...}
sollteclass func isConnectedToNetwork{...}
für Ihren Anwendungsfall geändert werden.Sie können auch die folgende Antwort verwenden.
quelle
SWIFT 3: Überprüfen Sie die 3G- und Wi-Fi-Verbindung
quelle
Für Swift 5:
quelle
Swift 4
quelle