0Pricing
Swift Academy · Leçon

S’inscrire aux notifications push

Demandez l’autorisation et obtenez un jeton d’appareil.

S’inscrire aux notifications push est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 4 leçons au total.

Comment fonctionnent les notifications push de bout en bout

Une notification push voyage de votre serveur, via le service de notifications push d’Apple (APNs), jusqu’à un appareil précis. L’appareil prouve son identité avec un jeton d’appareil que lui a fourni APNs. Avant toute chose, l’utilisateur doit accorder son autorisation et l’application doit s’enregistrer.

// Flow: App registers -> APNs returns device token ->
// you send token to your server -> server pushes via APNs

Le centre de notifications

UNUserNotificationCenter est l’unique objet que vous utilisez pour tout ce qui concerne les notifications locales et distantes : demander l’autorisation, définir le délégué, planifier des notifications locales et lire les réglages. Récupérez l’instance partagée.

import UserNotifications
let center = UNUserNotificationCenter.current()
// All notification configuration goes through center

Demander l’autorisation

Vous devez demander l’autorisation de l’utilisateur avant d’afficher des notifications. requestAuthorization(options:) présente la demande système et renvoie une valeur indiquant si l’utilisateur a accepté. Ne demandez que les options nécessaires : .alert, .sound, .badge.

import UserNotifications
func requestAuth() async throws -> Bool {
    let center = UNUserNotificationCenter.current()
    return try await center.requestAuthorization(
        options: [.alert, .sound, .badge])
}

S’enregistrer auprès d’APNs

L’autorisation est distincte de l’enregistrement. Après avoir obtenu l’autorisation, ou en parallèle, appelez registerForRemoteNotifications() sur l’acteur principal. Cette opération demande un jeton d’appareil à APNs. Elle doit s’exécuter sur le thread principal.

import UIKit
@MainActor
func registerForPush() {
    UIApplication.shared.registerForRemoteNotifications()
}

Recevoir le jeton d’appareil

En cas de succès, le délégué de l’application déclenche didRegisterForRemoteNotificationsWithDeviceToken avec un jeton Data. Convertissez-le en chaîne hexadécimale et envoyez-le à votre serveur, qui l’utilisera pour cibler cet appareil.

import UIKit
func application(
    _ app: UIApplication,
    didRegisterForRemoteNotificationsWithDeviceToken
    deviceToken: Data) {
    let token = deviceToken.map {
        String(format: "%02x", $0) }.joined()
    print("APNs token:", token)
    // send token to your backend
}

Gérer l’échec de l’enregistrement

L’enregistrement peut échouer : absence de réseau, autorisation APNs manquante ou exécution dans un environnement non pris en charge. Implémentez didFailToRegisterForRemoteNotificationsWithError pour consigner l’erreur et effectuer une récupération élégante plutôt que de provoquer un plantage.

import UIKit
func application(
    _ app: UIApplication,
    didFailToRegisterForRemoteNotificationsWithError
    error: Error) {
    print("Push registration failed:", error)
}

Les jetons peuvent changer

Un jeton d’appareil n’est pas permanent. Il change lorsque l’utilisateur restaure une sauvegarde, réinstalle l’application ou passe à un nouvel appareil. Enregistrez-vous toujours à chaque lancement et envoyez le dernier jeton, en remplaçant l’ancien côté serveur.

// Best practice: register on each launch,
// always upload the freshly received token,
// never cache a token as permanent.
let rule = "re-register every launch"
_ = rule

Vérifier les réglages actuels

L’utilisateur peut révoquer son autorisation ultérieurement dans les réglages. Avant de compter sur les notifications, interrogez getNotificationSettings pour lire le statut d’autorisation actuel et les fonctionnalités autorisées.

import UserNotifications
func currentStatus() async -> UNAuthorizationStatus {
    let settings = await UNUserNotificationCenter
        .current().notificationSettings()
    return settings.authorizationStatus
}

Autorisation provisoire

L’option .provisional permet aux notifications d’arriver discrètement dans le centre de notifications, sans demande initiale. C’est idéal pour permettre aux utilisateurs d’essayer les notifications avant de s’engager, avec la possibilité de les conserver ou de les désactiver.

import UserNotifications
func requestQuiet() async throws -> Bool {
    try await UNUserNotificationCenter.current()
        .requestAuthorization(
            options: [.alert, .sound, .provisional])
}

La capacité requise

Rien de tout cela ne fonctionne sans activer la capacité Notifications push dans votre cible Xcode, ce qui ajoute l’autorisation aps-environment. Pour la distribution en arrière-plan, activez également la capacité Modes en arrière-plan avec les notifications distantes.

// Xcode target > Signing & Capabilities:
//   + Push Notifications
//   + Background Modes > Remote notifications
let caps = "entitlements required"
_ = caps

Assembler l’enregistrement

Un flux de démarrage clair consiste à demander l’autorisation puis, si elle est accordée, à enregistrer l’application pour les notifications distantes sur l’acteur principal. Le jeton arrive ensuite dans la fonction de rappel du délégué pour être envoyé au serveur.

import UIKit
import UserNotifications
func setupPush() async {
    let center = UNUserNotificationCenter.current()
    let granted = (try? await center.requestAuthorization(
        options: [.alert, .sound, .badge])) ?? false
    if granted {
        await MainActor.run {
            UIApplication.shared.registerForRemoteNotifications()
        }
    }
}

Vérification rapide

Rappelez-vous le lien entre l’autorisation et l’enregistrement.

Récapitulatif

Vous avez appris à vous inscrire aux notifications push :

  • Utilisez UNUserNotificationCenter pour demander l’autorisation .alert/.sound/.badge.
  • L’autorisation et l’inscription sont distinctes ; appelez registerForRemoteNotifications() sur l’acteur principal.
  • Convertissez le jeton Data en hexadécimal et envoyez-le au serveur ; réinscrivez-vous à chaque lancement, car les jetons changent.
  • Activez la capacité Notifications push et envisagez l’autorisation .provisional.

Questions Fréquemment Posées

La leçon « S’inscrire aux notifications push » est-elle gratuite ?

Oui — le texte complet de « S’inscrire aux notifications push » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « S’inscrire aux notifications push » ?

Demandez l’autorisation et obtenez un jeton d’appareil. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Swift Academy ?

Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « S’inscrire aux notifications push » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?

Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. S’inscrire aux notifications push
  2. Gérer les charges utiles des notifications
  3. Tâches et actualisation en arrière-plan
  4. Actions et catégories de notifications
← Retour à Swift Academy