Table des matières:
Vidéo: Comment savoir si une plateforme en ligne est en panne ? (2018) ? 2025
L'un des moyens les plus faciles d'obtenir le rejet de votre application par Apple est de ne pas vérifier que vous disposez d'une connexion Internet lorsque votre application en a besoin et de ne pas avertir l'utilisateur cela nécessite que la connexion ne soit pas disponible (ou pire encore, que votre application reste accrochée).
Téléchargement de l'exemple d'accessibilité
Apple fournit un exemple d'application appelé Reachability qui montre comment déterminer si vous disposez d'une connexion Internet. Voici comment utiliser le code de cet exemple de programme:
-
Téléchargez l'exemple d'accessibilité d'Apple en cliquant sur Exemple de code.
-
Entrez Reachability dans le champ Search.
-
Cliquez sur le projet Reachability dans les résultats de la recherche. Dans la fenêtre iOS Developer Library qui s'affiche, cliquez sur le bouton Download Sample Code.
-
Dans votre dossier Téléchargements, double-cliquez sur le dossier Accessibilité pour l'ouvrir.
Vous définissez votre dossier Téléchargements Safari dans Safari → Préférences à l'aide de l'onglet Général.
-
Ouvrez le dossier interne Reachability et faites glisser le Reachability. h et accessibilité. m fichiers dans votre projet.
-
Cochez la case devant Road Trip dans la section Ajouter aux cibles.
Veillez à sélectionner l'option Copier les éléments dans le dossier du groupe de destination (si elle n'est pas déjà sélectionnée).
Pour pouvoir utiliser ce code, vous devez ajouter le framework SystemConfiguration. Pour ce faire, procédez comme suit:
-
Dans le navigateur de projet, sélectionnez l'icône du projet (dans ce cas, RoadTrip) en haut de la zone de contenu du navigateur de projet pour afficher l'éditeur de projet.
-
Dans le menu contextuel des cibles situé juste en dessous de la barre de saut du projet, sélectionnez RoadTrip.
-
Dans l'onglet Construire les Phases, faites défiler jusqu'à la section Lier les Binaires avec les Bibliothèques.
-
Développez la section Lier les bibliothèques avec des bibliothèques si elle n'est pas déjà développée en cliquant sur le triangle d'affichage.
-
Cliquez sur le bouton + (signe plus) situé sous la liste des cadres de projet en cours.
Une liste de cadres apparaît.
-
Faites défiler vers le bas et sélectionnez SystemConfiguration. cadre.
-
Cliquez sur le bouton Ajouter.
Vous verrez le cadre ajouté à la section Frameworks et bibliothèques liés.
-
Fermez la section Frameworks et bibliothèques liés.
Ajout du code pour vérifier l'accessibilité
L'endroit où vérifier si vous avez accès à Internet est correct au démarrage. La méthode pour le faire est l'application de méthode de protocole de délégué d'application: didFinishLaunchingWithOptions:.
Vous devez également inclure l'accessibilité.h pour pouvoir utiliser Reachability, ajoutez le code en gras dans l'extrait 8-1 au début de AppDelegate. m fichier et l'application: didFinishLaunchingWithOptions: méthode.
#import "AppDelegate.h" #import "Reachability.h" @implementation AppDelegate - Application (BOOL): application (UIApplication *) didFinishLaunchingWithOptions: (NSDictionary *) launchOptions {if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {UISplitViewController * splitViewController = (UISplitViewController *) self. fenêtre. rootViewController; UINavigationController * navigationController = [splitViewController. viewControllers lastObject]; splitViewController. delegate = (id) navigationController. topViewController;} NetworkStatus networkStatus = [[Reachability reachabilityForInternetConnection] currentReachabilityStatus]; if (networkStatus == NotReachable) { UIAlertView * alert = [[UIAlertView alloc] initWithTitle: @ "Réseau non disponible" message: @ "RoadTrip nécessite une connexion Internet" délégué: nil cancelButtonTitle: @ "OK" otherButtonTitles: nil]; [émission d'alerte]; } return YES;}
Ignorer le code qui n'est pas en gras pour le moment.
Dans la section en gras, vous commencez par créer un objet Reachability, puis vous lui envoyez le message currentReachabilityStatus:
NetworkStatus networkStatus = [[Reachability reachabilityForInternetConnection] currentReachabilityStatus];
reachabilityForInternetConnection est un initialisateur qui crée un objet Reachability qui vérifie la disponibilité d'une connexion Internet. L'accessibilité a beaucoup de fonctionnalités, mais tout ce qui vous intéresse en ce moment est de savoir si vous pouvez accéder à Internet.
Ensuite, vérifiez si vous avez un accès réseau:
if (networkStatus == NotReachable) {
Si vous n'avez pas d'accès au réseau, vous postez une alerte:
UIAlertView * alert = [[UIAlertView alloc] initWithTitle: @ Message "Réseau non disponible": @ "RoadTrip nécessite une connexion Internet" délégué: nil cancelButtonTitle: @ "OK" otherButtonTitles: nil]; [émission d'alerte];
C'est la manière standard de configurer puis d'afficher une alerte. Vous avez rempli les différents paramètres (explicites) requis par la méthode d'initialisation. Configuré de cette façon, l'alerte aura un seul bouton.
Le message d'affichage de l'objet d'alerte entraîne l'affichage de l'alerte dans la fenêtre. Lorsque l'utilisateur appuie sur OK, l'alerte est ignorée.
Si vous aviez ajouté d'autres boutons pour donner à l'utilisateur un choix de réponses, vous auriez dû rendre l'objet affichant l'alerte (l'AppDelegate, dans ce cas) un UIAlertViewDelegate, assigné le paramètre delegate à self, et ajouté le titre des autres boutons utilisant une liste terminée par zéro. Vous auriez alors besoin d'implémenter la méthode alertView: clickedButtonAtIndex: dans le délégué.
En examinant le code, vous pouvez facilement comprendre comment obtenir toute autre information d'état du réseau que vous voulez.
Si vous exécutez l'application maintenant et que vous désactivez votre connexion Internet sur l'ordinateur (si vous utilisez le simulateur) ou que vous activez le mode Avion ou que vous désactivez votre connexion Wi-Fi sur l'appareil, ce message s'affiche.(Ce qui importe n'est pas le comportement sur le simulateur mais, plus tard, le comportement sur un périphérique.)
