2012-04-06 6 views
0

In meiner App, wenn Benutzer keine Internetverbindung haben, muss ich "KEINE Internetverbindung" Nachricht anzeigen.iPhone: Wie kann ich die Erreichbarkeit ohne Host nutzen?

Um Erreichbarkeits so zu verwenden:

Reachability *netReach = [Reachability reachabilityWithHostName:@"host.name"]; 

ist keine gute Idee, weil Internet sein könnte, aber Host ist nicht, nicht wahr?

So, wie Internet-Verbindung ohne Host zu überprüfen? Danke ...

+0

durch die Antwort lesen zu http://stackoverflow.com/questions/6062835/ Update-iPhone-Erreichbarkeit-auf-Netzwerk-Änderungen - wie es ist ein viel besserer Mechanismus für die Reaktion im Falle der Netzwerk nicht vorhanden ist. d. h. Sie sollten nur die "Keine Netzwerkverbindung" anzeigen, wenn die App versucht hat, die Netzwerkfunktion durch Netzwerkanforderungen herzustellen, und dann die Erreichbarkeitsresultate überprüfen, anstatt sich auf die Erreichbarkeit am Anfang zu verlassen. – Petesh

Antwort

0

Sie haben absolut Recht. Die Erreichbarkeit überprüft nur, ob ein bestimmter Host erreichbar ist oder nicht. Das Problem ist, dass ohne eine Anfrage an einen Host gibt es keine Möglichkeit (wie ich mir vorstellen kann), wie Sie feststellen, ob Sie mit dem Internet verbunden sind oder nicht.

So was Sie tun können (und was Apple in seinem Erreichbarkeitsbeispiel tut): Wählen Sie einen Host, auf dem Sie 99,99% sicher sein können, dass der Host verfügbar ist. Wie zum Beispiel google.com oder apple.com

Ich denke, die Tatsache, dass Apple auf einen bestimmten Host angewiesen ist, um Internet-Verbindung zu überprüfen (und die Tatsache, dass sie mit etwas anderes, ohne Abhängigkeit nicht gekommen sind auf einem bestimmten Host) ist ein ziemlich gutes Zeichen, dass das Überprüfen der Internetverbindung auf diese Weise keine schlechte Idee ist.

EDIT

Natürlich ist die beste Art und Weise (in Bezug auf die Frage in der Antwort beschrieben, dass Petesh zu zeigt) wäre, einfach die Anfrage Sie machen wollen und machen dann Fehler entsprechend zu behandeln, wenn sie auftreten. Mit anderen Worten: 1. Machen Sie Ihre Anfrage 2. Wenn es Erreichbarkeits nicht verwenden, um festzustellen, ob eine fehlende Internetverbindung das Problem sein könnte

+0

Ich habe gehört, dass Apple die App ablehnen kann, wenn es eine Nachricht "Keine Internetverbindung" anzeigen könnte, wenn das Internet verfügbar ist ... Etwas wie das ... Versuchen, das zu finden .. – Jim

+0

Es denke, Sie sollten in Ordnung sein, wenn Sie es versuchen um die Anfrage zuerst an Ihren Server zu senden und die Erreichbarkeit nur zu verwenden, wenn Ihr Server nicht antwortet, um zu prüfen, ob Sie einen anderen Host erreichen können. Aber das ist nur meine persönliche Meinung. – joern

1
Reachability *internetReachable = [Reachability reachabilityForInternetConnection]; 
[internetReachable startNotifier]; 
if(internetReachable.isReachable) 
    NSLog(@"True"); 
Verwandte Themen