108 votes

iOS Détecter 3G ou WiFi

Je ne suis pas sûr si cela est possible, mais j'ai ce scénario.

J'ai un site web s'affiche dans mon UIWebView qui a le lien situé dans un UISegmentedController. Ils site web peut détecter si vous êtes sur wi-fi ou sur le réseau 3g.

Maintenant, La segmentation contrôleur points à 2 pages différentes. 1 - un iPhone amical écran de connexion 2 - la page d'accueil, une fois que vous êtes connecté.

Maintenant la question est:

Puis-je programmer mon application pour détecter si c'est en wifi ou en 3g (je sais que vous pouvez le faire), mais ensuite, en fonction de la réponse aller à segment 1 ou 2

Genre comme ça:

if(iPhone device is on 3g) {
    Go to Segment 1;
} else {
    Go to Segment 0;
}

210voto

James Webster Points 16663

En utilisant le code d'apple de fournir ici

Reachability *reachability = [Reachability reachabilityForInternetConnection];
[reachability startNotifier];

NetworkStatus status = [reachability currentReachabilityStatus];

if(status == NotReachable) 
{
    //No internet
}
else if (status == ReachableViaWiFi)
{
    //WiFi
}
else if (status == ReachableViaWWAN) 
{
    //3G
}

8voto

Geri Points 3572

J'ai fait assez simple bloc de base de l'Accessibilité par le wrapper que des bandes de tous les anciens C-comme l'Accessibilité par le code, on verse dans une beaucoup plus de Cacao forme.

Utilisation comme:

[EPPZReachability reachHost:hostNameOrIPaddress
               completition:^(EPPZReachability *reachability)
{
    if (reachability.reachableViaCellular) [self doSomeLightweightStuff];
}];

Voir l'Accessibilité avec des blocs pour une utilisation quotidienne à l' eppz!blog, ou prenez directement à partir de eppz!l'accessibilité à GitHub.

Il travaille également avec des adresses IP, qui s'est avéré être assez rare Accessibilité wrapper fonctionnalité.

1voto

orafaelreis Points 835

Si vous utilisez Xamarin ou Monotouch vous pouvez utiliser l'Accessibilité classe adaptée de Xamarin GitHub:

https://github.com/xamarin/monotouch-samples/blob/master/ReachabilitySample/reachability.cs

Afin de l'ajouter à votre projet et appel d' Reachability.InternetConnectionStatus()

0voto

Etienne Bley Points 11

Voici une version mise à jour pour iOS 6 avec SimplePing d'apple a également inclus. Il est compatible ARC et j'ai commencé à partir d'une autre personne correctif à l'Accessibilité. http://elbsolutions.com/projects/reachability-with-simpleping-wrapper/

J'espère que cela aide quelqu'un.

-2voto

huydotnet Points 81

Utilisez celui-ci, construit avec l'Accessibilité et facile à utiliser, il suffit de quelques lignes de code pour intégrer. A une fonction de rappel pour vous dire quand la connexion a changé http://huytd.github.io/datatify/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X