0Pricing
Swift Academy · Lektion

Für Push-Benachrichtigungen registrieren

Fordern Sie die Berechtigung an und beziehen Sie ein Geräte-Token.

Für Push-Benachrichtigungen registrieren ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

So funktioniert Push vollständig

Eine Push-Benachrichtigung wird von Ihrem Server über den Apple Push Notification service (APNs) an ein bestimmtes Gerät übertragen. Das Gerät weist seine Identität mit einem von APNs ausgestellten device token nach. Zuvor muss der Benutzer die Erlaubnis erteilen und die App muss sich registrieren.

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

Das Notification Center

UNUserNotificationCenter ist das zentrale Objekt für alles, was lokal und remote geschieht: Autorisierung anfordern, den Delegate festlegen, lokale Benachrichtigungen planen und Einstellungen auslesen. Rufen Sie die gemeinsame Instanz ab.

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

Autorisierung anfordern

Sie müssen den Benutzer fragen, bevor Sie Benachrichtigungen anzeigen. requestAuthorization(options:) zeigt den Systemdialog an und gibt zurück, ob der Benutzer zugestimmt hat. Fordern Sie nur die benötigten Optionen an: .alert, .sound, .badge.

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

Bei APNs registrieren

Die Autorisierung ist von der Registrierung getrennt. Rufen Sie nach oder zusammen mit der Berechtigung registerForRemoteNotifications() auf dem Main Actor auf. Dadurch wird APNs um ein Device Token gebeten. Der Aufruf muss im Hauptthread erfolgen.

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

Das Device Token empfangen

Bei Erfolg wird der App-Delegate mit didRegisterForRemoteNotificationsWithDeviceToken und einem Data-Token aufgerufen. Sie wandeln es in einen Hex-String um und senden ihn an Ihren Server, der damit dieses Gerät adressiert.

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
}

Fehler bei der Registrierung behandeln

Die Registrierung kann fehlschlagen — etwa wegen fehlender Netzwerkverbindung, einer fehlenden APNs-Berechtigung oder einer nicht unterstützten Umgebung. Implementieren Sie didFailToRegisterForRemoteNotificationsWithError, um den Fehler zu protokollieren und angemessen weiterzumachen, statt die App abstürzen zu lassen.

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

Tokens können sich ändern

Ein Device Token ist nicht dauerhaft gültig. Es ändert sich, wenn der Benutzer ein Backup wiederherstellt, die App neu installiert oder auf ein neues Gerät wechselt. Registrieren Sie sich bei jedem Start und laden Sie das neueste Token hoch; ersetzen Sie das alte serverseitig.

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

Aktuelle Einstellungen prüfen

Der Benutzer kann die Berechtigung später in den Einstellungen widerrufen. Fragen Sie vor der Nutzung von Benachrichtigungen mit getNotificationSettings die aktuellen Autorisierungsstatuswerte und die zulässigen Funktionen ab.

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

Vorläufige Autorisierung

Mit der Option .provisional können Benachrichtigungen ohne vorherige Aufforderung unauffällig im Notification Center eintreffen. So können Benutzer Benachrichtigungen zunächst ausprobieren und anschließend entscheiden, ob sie sie behalten oder deaktivieren.

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

Die erforderliche Fähigkeit

Ohne die Fähigkeit Push Notifications in Ihrem Xcode-Target funktioniert nichts davon; sie fügt die Berechtigung aps-environment hinzu. Für die Hintergrundzustellung aktivieren Sie außerdem die Fähigkeit Background Modes mit Remote notifications.

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

Die Registrierung zusammenführen

Ein sauberer Ablauf beim Start: Fordern Sie die Autorisierung an und registrieren Sie die App bei erteilter Berechtigung auf dem Main Actor für Remote-Benachrichtigungen. Das Token trifft anschließend im Delegate-Callback zum Hochladen ein.

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

Kurze Überprüfung

Rufen Sie sich den Zusammenhang zwischen Autorisierung und Registrierung ins Gedächtnis.

Zusammenfassung

Sie haben gelernt, wie Sie sich für Push-Benachrichtigungen registrieren:

  • Verwenden Sie UNUserNotificationCenter, um die Berechtigung für .alert/.sound/.badge anzufordern.
  • Berechtigung und Registrierung sind getrennt; rufen Sie registerForRemoteNotifications() auf dem Main Actor auf.
  • Konvertieren Sie das Data-Token in Hexadezimaldarstellung und laden Sie es hoch; registrieren Sie sich bei jedem Start erneut, da sich Tokens ändern.
  • Aktivieren Sie die Push Notifications Capability und ziehen Sie eine .provisional-Berechtigung in Betracht.

Häufig gestellte Fragen

Ist die Lektion „Für Push-Benachrichtigungen registrieren“ kostenlos?

Ja — der vollständige Text von „Für Push-Benachrichtigungen registrieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Für Push-Benachrichtigungen registrieren“?

Fordern Sie die Berechtigung an und beziehen Sie ein Geräte-Token. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Für Push-Benachrichtigungen registrieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Für Push-Benachrichtigungen registrieren
  2. Notification-Payloads verarbeiten
  3. Hintergrundaufgaben und Aktualisierung
  4. Benachrichtigungsaktionen und -kategorien
← Zurück zu Swift Academy