2012-12-17 14 views
13

Dodałem klasy zasięgu dostarczone przez Apple i działa dobrze w celu sprawdzenia połączenia z Internetem. Moja aplikacja wyświetla komunikat, jeśli internet się wyłączył.Sprawdź wolne połączenie z Internetem iOS

Ale jeśli internet jest bardzo powolny, że po prostu zachować loading .......

używam wifi i zmierzyć się z tym problem, gdy istnieje tylko kropkę widoczny w pasku powiadomień dla iPhone sygnał WiFi .

Chciałbym wiedzieć, jak sprawdzić wolne połączenie z Internetem.

+0

Ile bajtów na sekundę uważasz za wolne? –

+0

cześć dzięki odpowiedzi. Nie mam informacji o poziomie bajtów. jeśli jest to istotne, niż powiedz mi, jak mogę znaleźć odpowiedź, znajdując to. – CRDave

+0

huh? Wydaje się, że nie zrozumiałeś mojego punktu widzenia. –

Odpowiedz

12

Możesz wysłać zapytanie do swojego serwera i biorąc pod uwagę, że jest to około 5-10 KB danych, które spodziewasz się zwrócić, a następnie utworzyć odliczanie czasowe, które jest zaplanowane na 20 sekund.

Jeśli w ciągu 20 sekund nie otrzymasz odpowiedzi, rozważmy wolne połączenie.

Przykład:

// make POST request to server, the POST request should have a callback method assigned 
[self testSpeed]; 

// schedule a method to be called after 20 seconds 
myTimer = [NSTimer scheduledTimerWithInterval:20.0 selector:@selector(stopSpeedTest) .... ]; 

// your POST request callback method 
-(void)speedTestCallback 
{ 
    [myTimer invalidate]; 
    myTimer = nil; 

    [self alertGoodSpeed]; 
} 

// your stopSpeedTest method to identify app didn't receive response within 20 seconds 
-(void)stopSpeedTest 
{ 
    [self alertTooSlow]; 
} 

myślę, że to, co H2CO3 starał się zapytać: „Ile bajtów na sekundę uważa pan za wolno”

Musisz długo decydować, czy uważasz, że użytkownik chce poczekać na ilość danych, które mają zostać zwrócone.

Jeśli mówisz użytkownikowi, że pobierasz 50 MB danych, to tak, sprowadzenie wszystkich z powrotem w 20 sekund jest szybkie.

Jeśli jednak spodziewasz się tylko 5-10 KB danych, a proces ten trwa dłużej niż 10 sekund, a co dopiero 20 sekund, połączenie jest bardzo powolne.

+0

Hi Zhang. Twoje rozwiązanie wydaje się bardzo logiczne. Przeszukałem wystarczająco i okazało się, że nie ma legalnego sposobu sprawdzenia siły sieci i jeśli pójdę w inny sposób, moja aplikacja może zostać odrzucona przez Apple. Dzięki za to. – CRDave

+0

Skąd się wzięło, że nie jest to legalna prędkość sieci? – DiegoQ

Powiązane problemy