Ich bin nicht sicher, ob dies möglich ist, aber ich habe dieses Szenario.
In meinem UIWebView wird eine Website angezeigt, auf der der Link in einem UISegmentedController festgelegt ist. Die Website kann erkennen, ob Sie sich im WLAN oder im 3G-Netzwerk befinden.
Jetzt zeigt der segmentierte Controller auf 2 verschiedene Seiten: 1 - Ein iPhone-freundlicher Anmeldebildschirm 2 - Die Startseite, sobald Sie angemeldet sind.
Hier ist die Frage:
Kann ich meine Anwendung so programmieren, dass sie erkennt, ob es sich um WIFI oder 3G handelt (ich weiß, dass Sie dies tun können), aber dann basierend auf der Antwort zu Segment 1 oder 2 gehen
Ein bisschen wie das:
if (iPhone device is on 3g) {
Go to Segment 1;
} else {
Go to Segment 0;
}
ios
objective-c
wifi
reachability
3g
jwknz
quelle
quelle
Antworten:
Verwenden Sie den Code, den Apple hier bereitgestellt hat
quelle
[reachability stopNotifier]
nachdem Sie den Status haben?reachability
wäre , würde dies den Rahmen verlassen und am Ende der Methode freigegeben undstopNotifier
implizit aufgerufen werden.ReachableViaWifiNetwork
Wenn Sie keine Erreichbarkeitsbibliothek importieren oder sich nicht mit Benachrichtigern befassen möchten, können Sie diese einfache synchrone Methode verwenden:
quelle
Importieren Sie Apples Erreichbarkeit und versuchen Sie dies,
Referenzen (Links können in Zukunft unterbrochen werden):
Was ist der Unterschied zwischen CDMA- und WCDMA-Netzwerksimulation?
Was ist "EV-DO Rev. A"?
quelle
Ich habe einen ziemlich einfachen blockbasierten Reachability-Wrapper erstellt, der den gesamten veralteten C-ähnlichen Reachability-Code entfernt und in eine viel mehr Kakao-Form gegossen hat.
Verwendung wie:
Siehe Erreichbarkeit mit Blöcken für den täglichen Gebrauch auf eppz! Blog oder greifen Sie direkt auf eppz! Erreichbarkeit bei GitHub zu .
Es funktioniert auch mit IP-Adressen , was sich als ziemlich seltene Reachability-Wrapper-Funktion herausstellte.
quelle
Wenn Sie iOS 12 oder höher verwenden, können Sie
NWPathMonitor
anstelle der prähistorischenReachability
Klasse Folgendes verwenden:quelle
Reachability.reachabilityWithHostName
?Für schnell können wir verwenden:
quelle
Die Klassenmethode ist wie folgt
quelle
Um zu überprüfen, ob Sie sich in einem WLAN befinden, erspart dies die kostspielige Überprüfung des Verbindungsaufbaus. Suchen Sie nach ifa_name "bridge", um nach Internetfreigabe zu suchen.
quelle
Wenn Sie Xamarin oder Monotouch verwenden, können Sie die an die Erreichbarkeit angepasste Klasse aus dem Xamarin GitHub-Repository verwenden:
https://github.com/xamarin/monotouch-samples/blob/master/ReachabilitySample/reachability.cs
Fügen Sie es also Ihrem Projekt hinzu und rufen Sie an
Reachability.InternetConnectionStatus()
quelle
Hier ist eine aktualisierte Version für iOS 6 mit SimplePing von Apple. Es ist ARC-kompatibel und ich habe mit dem Fix einer anderen Person auf Erreichbarkeit begonnen. http://elbsolutions.com/projects/reachability-with-simpleping-wrapper/
Ich hoffe das hilft jemandem.
quelle
Verwenden Sie diese, mit Erreichbarkeit erstellte und benutzerfreundliche, nur wenige Codezeile zum Integrieren. Hat eine Rückruffunktion, die Ihnen mitteilt, wann sich die Verbindung geändert hat http://huytd.github.io/datatify/
quelle