Nie jestem pewien, czy jest to możliwe, ale mam taki scenariusz.
Mam witrynę sieci Web wyświetlaną w moim UIWebView, która ma łącze ustawione w UISegmentedController. Witryna internetowa może wykryć, czy korzystasz z Wi-Fi, czy w sieci 3G.
Teraz podzielony na segmenty kontroler wskazuje 2 różne strony: 1 - Ekran logowania przyjazny dla iPhone'a 2 - Strona główna po zalogowaniu.
Oto pytanie:
Czy mogę zaprogramować moją aplikację tak, aby wykryła, czy jest to WIFI czy 3G (wiem, że możesz to zrobić), ale następnie na podstawie odpowiedzi przejdź do segmentu 1 lub 2
Coś takiego:
if (iPhone device is on 3g) {
Go to Segment 1;
} else {
Go to Segment 0;
}
ios
objective-c
wifi
reachability
3g
jwknz
źródło
źródło
Odpowiedzi:
Używając kodu, który dostarczył tutaj Apple
źródło
[reachability stopNotifier]
po uzyskaniu statusu?reachability
wyszłoby poza zakres i zostałoby zwolnione na końcu metody istopNotifier
byłoby wywoływane niejawnie.ReachableViaWifiNetwork
Jeśli nie chcesz importować biblioteki osiągalności lub zajmować się zgłaszającymi, możesz użyć tej prostej metody synchronicznej:
źródło
Importuj dostępność Apple i wypróbuj to,
Odnośniki (linki mogą się zepsuć w przyszłości):
Jaka jest różnica między kartą SIM CDMA i WCDMA
Co to jest „EV-DO Rev. A”?
źródło
Zrobiłem całkiem prosty, oparty na blokach wrapper Reachability, który usuwa cały przestarzały kod Reachability podobny do C, wlewany do znacznie bardziej kakaowej formy.
Użycie jak:
Zobacz osiągalność z blokami do codziennego użytku na blogu eppz ! , lub pobierz ją bezpośrednio z eppz! Osiągalność w GitHub .
Działa również z adresami IP , co okazało się dość rzadką funkcją opakowania Reachability.
źródło
Korzystając z iOS 12 lub nowszego, możesz użyć
NWPathMonitor
zamiastReachability
klasy sprzed historycznej :źródło
Reachability.reachabilityWithHostName
?Do szybkiego możemy użyć:
źródło
Metoda klasowa jest następująca
źródło
Aby sprawdzić, czy korzystasz z Wi-Fi, oszczędza to kosztownego sprawdzania połączenia. Sprawdź, czy ifa_name „bridge”, aby sprawdzić udostępnianie Internetu.
źródło
Jeśli korzystasz z platformy Xamarin lub Monotouch, możesz użyć klasy dostosowanej do zasięgu z repozytorium Xamarin GitHub:
https://github.com/xamarin/monotouch-samples/blob/master/ReachabilitySample/reachability.cs
Więc dodaj go do swojego projektu i zadzwoń
Reachability.InternetConnectionStatus()
źródło