Swift Academy · Les

Registreren voor pushnotificaties

Vraag toestemming en verkrijg een device token.

Les 1 van 413 stappen

Registreren voor pushnotificaties is een gratis Swift Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Swift Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Swift Academy bevat in totaal 4 lessen.

Hoe pushberichten van begin tot eind werken

Een pushmelding gaat van je server via Apple Push Notification service (APNs) naar een specifiek apparaat. Het apparaat bewijst zijn identiteit met een apparaattoken dat door APNs is uitgegeven. Hiervoor moet de gebruiker toestemming geven en moet de app zich registreren.

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

Het Notification Center

UNUserNotificationCenter is het ene object dat je gebruikt voor alles wat lokaal en op afstand gebeurt: autorisatie aanvragen, de delegaat instellen, lokale meldingen plannen en instellingen lezen. Haal de gedeelde instantie op.

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

Autorisatie aanvragen

Je moet de gebruiker om toestemming vragen voordat je meldingen toont. requestAuthorization(options:) toont het systeemvenster en geeft terug of de gebruiker akkoord is gegaan. Vraag alleen de opties aan die je nodig hebt: .alert, .sound, .badge.

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

Registreren bij APNs

Autorisatie staat los van registratie. Nadat je toestemming hebt gekregen, of tegelijk daarmee, roep je registerForRemoteNotifications() aan op de hoofdactor. Hiermee vraag je APNs om een apparaattoken. Dit moet op de hoofdthread worden uitgevoerd.

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

Het apparaattoken ontvangen

Bij succes wordt de didRegisterForRemoteNotificationsWithDeviceToken van de appdelegaat aangeroepen met een Data-token. Je zet dit om in een hexadecimale tekenreeks en stuurt die naar je server, die hem gebruikt om dit apparaat te bereiken.

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
}

Een registratiefout afhandelen

Registratie kan mislukken — bijvoorbeeld door ontbrekend netwerk, ontbrekende APNs-rechten of uitvoering in een niet-ondersteunde omgeving. Implementeer didFailToRegisterForRemoteNotificationsWithError om de fout te loggen en netjes te herstellen in plaats van te crashen.

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

Tokens kunnen veranderen

Een apparaattoken is niet permanent. Het verandert wanneer de gebruiker een reservekopie terugzet, de app opnieuw installeert of naar een nieuw apparaat overstapt. Registreer het token altijd bij elke start en upload het nieuwste token, waarbij je het oude aan de serverzijde vervangt.

// 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

Huidige instellingen controleren

De gebruiker kan toestemming later intrekken in Instellingen. Vraag voordat je op meldingen vertrouwt met getNotificationSettings de huidige autorisatiestatus op en lees welke functies zijn toegestaan.

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

Voorlopige autorisatie

Met de optie .provisional kunnen meldingen stil in het Notification Center verschijnen zonder voorafgaand systeemvenster. Dit is handig om gebruikers meldingen te laten uitproberen voordat ze definitief kiezen, met de optie om ze te behouden of uit te schakelen.

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

De vereiste voorziening

Dit werkt allemaal niet zonder de voorziening Push Notifications in je Xcode-doel in te schakelen; daarmee wordt de aps-environment-toestemming toegevoegd. Voor aflevering op de achtergrond schakel je ook de voorziening Background Modes in met Remote notifications.

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

De registratie opzetten

Een nette opstartvolgorde: vraag autorisatie aan en registreer je, als die is verleend, bij meldingen op afstand op de hoofdactor. Het token komt daarna binnen in de terugbelactie van de delegaat om te worden geüpload.

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()
        }
    }
}

Snelle controle

Haal de relatie tussen autorisatie en registratie terug.

Samenvatting

Je hebt geleerd hoe je je voor pushmeldingen registreert:

  • Gebruik UNUserNotificationCenter om toestemming te vragen voor .alert/.sound/.badge.
  • Toestemming en registratie staan los van elkaar; roep registerForRemoteNotifications() aan op de hoofdactor.
  • Zet de Data-token om naar hexadecimaal en upload die; registreer je bij elke start opnieuw, omdat tokens veranderen.
  • Schakel de mogelijkheid Push Notifications in en overweeg voorlopige toestemming met .provisional.
Gratis beginnen

Leer Swift met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
122
Lessen
409

Veelgestelde vragen

Is de les “Registreren voor pushnotificaties” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Swift Academy, waaronder “Registreren voor pushnotificaties”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Swift Academy bevat in totaal 4 lessen.

Wat leer ik in “Registreren voor pushnotificaties”?

Vraag toestemming en verkrijg een device token. Je oefent met Swift Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Swift Academy te beginnen?

Ervaring vooraf is niet nodig. Swift Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Registreren voor pushnotificaties”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Swift Academy?

Ja. Elke les over Swift Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Registreren voor pushnotificaties
  2. Notificatiepayloads verwerken
  3. Achtergrondtaken en verversen
  4. Notificatieacties en -categorieën
← Terug naar Swift Academy