Ich habe im Internet nach dem besten Weg gesucht, um nach einer Internetverbindung in iOS zu suchen, die sowohl in der IPv4- als auch in der IPv6-Netzwerkumgebung funktioniert. Ich fand, dass es viele mögliche Antworten gibt, aber sehr verwirrt, auf welche man sich bezieht. Was ich tun muss, ist Folgendes:
%Vor%
Ich habe die folgenden Optionen gefunden, die im Internet vorgeschlagen werden.
OPTION 1:
Verwenden Sie die Apple-Erreichbarkeitsklasse
Mit Erreichbarkeit kann ich die Internetkonnektivität wie folgt überprüfen, die kurz und direkt ist und nicht auf eine Antwort warten muss.
%Vor%
Aber hier wird das Internet-Checking vor dem Flug durchgeführt, was gegen den Vorschlag von Apple Engineers ist, wie auf WWDC zu sehen ist Video . Auch wenn Sie ReadMe.md überprüfen, wurde erwähnt, dass Erreichbarkeit IPv6 vollständig unterstützt. Wenn jedoch die Methode reachabilityForInternetConnection in Reachability.m aktiviert ist, haben sie sockaddr_in verwendet, sockaddr_in6 wurde nicht verwendet, was für das IPv6-Netzwerk empfohlen wird. Also ich weiß nicht, ob es in IPv6-Netzwerk funktioniert.
OPTION 2: Verwenden Sie Alamofire zum Verbinden
Aber es ist nicht zeitaufwendig, zu versuchen, sich mit einem Host zu verbinden, auf die Antwort zu warten und dann zu wissen, ob online / offline.
OPTION 3: Verwenden Sie Tony Million's Version von Erreichbarkeit . Aber der Autor hat davor gewarnt, dass die App abgelehnt wird, während sie dies tut. Ich kann dies als Code unten verwenden: -
%Vor%
Aber in dieser Option ist meine Frage, ist dies der richtige Ansatz, um das Internet zu testen, indem Sie Ссылка verbinden. Garantiert dies 100% ige Ergebnisse? Was ist, wenn Google nicht erreichbar ist? Wenn die App in einem Land verwendet wird, in dem google.com nicht erlaubt ist, was ist das Ergebnis?
Ich war also in einem großen Dilemma, welche Option ich wählen sollte, ob diese Optionen richtig sind oder ob es eine bessere Möglichkeit gibt, Internet zu überprüfen, die 100% ige Ergebnisse garantiert und sowohl im IPv4- als auch im IPv6-Netzwerk funktioniert. Kann jemand mir vorschlagen, welche Option besser ist oder sollte ich einen anderen Ansatz wählen, was ist der bessere Weg, dies zu erreichen?
Ihre Antwort wird sehr geschätzt werden.