Intents Extension: Schlüsselkonzepte und Siri Intents-Integration in iOS

Autor: IT Sectr Veröffentlicht: 2026-06-16 Lesezeit: 9 Min.

Intents Extension ist eine iOS-Erweiterung, die Drittanbieter-Apps ermöglicht, Siri-Sprachbefehle zu verarbeiten und über SiriKit mit Systemdiensten zu interagieren. Die App definiert eigene Intents in Intents.intentdefinition, implementiert Handler auf Basis von INIntentHandler und registriert sie für die Spracherkennung von Phrasen. Laut Apple Developer Documentation (2025) unterstützt SiriKit über 20 Intent-Domänen — von Nachrichten und Zahlungen bis hin zu Workouts und Buchungen — und seit iOS 14 wurde die Unterstützung für benutzerdefinierte Intents über IntentsExtension hinzugefügt.

Wichtige Punkte

  • Intents Extension verarbeitet Siri-Sprachbefehle und System-Intents im Hintergrund im Namen der App
  • Intents werden über die Datei Intents.intentdefinition mit Parametern und Antworten im visuellen Editor von Xcode definiert
  • Das Kernprotokoll ist INIntentHandler, das die Methode handle(intent:completion:) zur Verarbeitung von Anfragen implementiert
  • Benutzerdefinierte Intents (iOS 14+) ermöglichen es der App, eigene Befehlstypen zu erstellen, ohne an standardmäßige SiriKit-Domänen gebunden zu sein
  • Die Erweiterung unterstützt INUIHostedViewProviding zur Anzeige einer benutzerdefinierten Oberfläche innerhalb von Siri vor der Ausführung eines Befehls

Was ist Intents Extension in iOS

Intents Extension ist eine App-Erweiterung, die es Siri, Shortcuts und anderen Systemdiensten ermöglicht, App-Funktionalitäten über das standardisierte INIntentHandler-Protokoll aufzurufen. Wenn ein Benutzer sagt „Hey Siri, sende eine Nachricht in Messenger X“, aktiviert Siri die entsprechende Erweiterung, übergibt die Anfrageparameter und erhält das Ergebnis zur Sprachausgabe.

Im Gegensatz zu anderen Erweiterungstypen arbeitet Intents Extension im Hintergrund ohne sichtbare Oberfläche — Siri zeigt die Antwort per Sprache oder Textkarte an. Die Erweiterung kann optional eine benutzerdefinierte Benutzeroberfläche über INUIHostedViewProviding bereitstellen, die zur Bestätigung vor der Ausführung eines Befehls innerhalb von Siri angezeigt wird.

Die Erweiterung hat keinen Zugriff auf den Gerätebildschirm und kann keine Aktionen selbstständig initiieren — nur als Antwort auf eine Anfrage von Siri oder Shortcuts. Dies gewährleistet Sicherheit: Der Benutzer kontrolliert immer, welche Aktionen die App über Sprachbefehle ausführt.

SiriKit und Intent-Domänen

SiriKit ist Apples Framework für die Siri-Integration, das in iOS 10 eingeführt wurde. Es definiert Domänen — Kategorien von Aktionen, die Siri verarbeiten kann: Nachrichten, Telefonanrufe, Zahlungen, Listen, Erinnerungen, Fotos, Workouts, Buchungen und andere. Jede Domäne hat einen festen Satz von Intents und Antworten.

Standard-Domänen

INSendMessageIntent — Senden von Nachrichten. INStartWorkoutIntent — Starten eines Workouts. INSearchForPhotosIntent — Suchen von Fotos. INRequestRideIntent — Buchen einer Fahrt. Jede Domäne definiert erforderliche und optionale Parameter, die Siri aus der Sprachanfrage extrahiert. Laut Apple benötigen Standard-Domänen keine intentdefinition-Datei — es reicht aus, den entsprechenden Handler zu implementieren.

Für Apps, die nicht in die Standard-Domänen passen, führte iOS 14 die Möglichkeit ein, benutzerdefinierte Intents zu verwenden. Die App definiert ihre eigenen Befehlstypen und deren Parameter über Intents.intentdefinition, und Siri lernt, die entsprechenden Phrasen auf der Grundlage von Beispielen zu erkennen, die der Entwickler bereitstellt.

Konfiguration in Info.plist

Die Intents Extension wird über den Schlüssel IntentsSupported in Info.plist registriert, der alle Intent-Klassen auflistet, die die Erweiterung verarbeitet. Siri verwendet diese Liste, um bei der Erkennung eines Sprachbefehls die geeignete Erweiterung auszuwählen. Wenn mehrere Erweiterungen denselben Intent unterstützen, fordert Siri den Benutzer auf, eine Auswahl zu treffen.

swift
class MessageIntentHandler: NSObject,
    INSendMessageIntentHandling {

    func handle(
        intent: INSendMessageIntent,
        completion: @escaping
            (INSendMessageIntentResponse) -> Void
    ) {
        let response = INSendMessageIntentResponse(
            code: .success, userActivity: nil)
        completion(response)
    }
}

INIntentHandler: Anfrageverarbeitung

INIntentHandler ist ein Protokoll, das Methoden zur Verarbeitung jeder Phase der Intent-Verarbeitung definiert: Parameterauflösung, Bestätigung und Ausführung. Die Erweiterung implementiert diese Methoden für jeden Intent-Typ, den sie unterstützt.

Drei Verarbeitungsphasen

resolve — Validierung und Klärung der Intent-Parameter. Siri ruft diese Methode für jeden Parameter auf. Fehlt ein Parameter oder ist er falsch, gibt die Erweiterung eine Klärungsanfrage zurück und Siri stellt dem Benutzer eine zusätzliche Frage. confirm — Bestätigung der Absicht. Die Erweiterung prüft, ob sie den Intent im aktuellen Kontext ausführen kann. handle — Tatsächliche Ausführung der Operation und Rückgabe des Ergebnisses.

Die Dreiteilung ist entscheidend für die Sprachbenutzererfahrung: Wenn ein Parameter nicht erkannt wird, führt Siri die Aktion nicht aus, sondern fragt nach. Wenn der Benutzer beispielsweise „Sende eine Nachricht an Alex“ sagt, aber es drei Alexe in den Kontakten gibt — gibt die Erweiterung einen resolve mit einer Klärungsanfrage zurück und Siri fragt „Welchen Alex?“

INIntentResponse und Statuscodes

INIntentResponse ist ein Objekt, das die Erweiterung nach der Ausführung des Intents im Completion-Handler zurückgibt. Die Antwort enthält einen Ergebniscode (success, failure, requiresAuthentication, inProgress) und optionale Daten für die Sprachausgabe durch Siri. Der Code bestimmt, wie Siri reagiert: success — Sprachbestätigung, failure — Fehlermeldung, inProgress — Anzeige eines langlaufenden Vorgangs.

swift
func resolve(
    for intent: INSendMessageIntent,
    with completion: @escaping
        (INStringResolutionResult) -> Void
) {
    if let text = intent.content, !text.isEmpty {
        completion(.success(with: text))
    } else {
        completion(.needsValue())
    }
}

Erstellung benutzerdefinierter Intents

Mit iOS 14 erhielten Entwickler die Möglichkeit, benutzerdefinierte Intents außerhalb der standardmäßigen SiriKit-Domänen zu definieren. Benutzerdefinierte Intents werden in der Datei Intents.intentdefinition beschrieben — einem visuellen Editor innerhalb von Xcode, in dem neue Befehlstypen mit Parametern und Antworten erstellt werden.

Aufbau benutzerdefinierter Intents

Jeder benutzerdefinierte Intent besteht aus INIntent (Anfragedefinition) und INIntentResponse (Antwortdefinition). INIntent enthält Parameter mit Datentypen — String, Integer, CurrencyAmount, gefundene Objekte und andere. INIntentResponse enthält Eigenschaften zur Rückgabe von Ergebnissen und ein Array von Antwortcodes. Xcode generiert automatisch Swift-Klassen basierend auf dieser Definition.

Apple empfiehlt, nicht mehr als 5 Parameter in einen benutzerdefinierten Intent aufzunehmen — übermäßige Parameter verschlechtern die Spracherkennung und erschweren die Benutzererfahrung. Für jeden Parameter ist es ratsam, Beispielphrasen im Assistenten-Dialog bereitzustellen, damit Siri lernt, sie korrekt zu erkennen.

Beispielphrasen für Siri

In Intents.intentdefinition können Sie für jeden Intent Beispielsätze angeben — Phrasen, die der Benutzer zu Siri sagt, um den Intent zu aktivieren. Beispiele: „Bestelle Kaffee in MeinerApp“, „Bitte MeineApp, ein Pizza-Rezept zu finden“. Siri verwendet diese Phrasen für das Erkennungstraining und schlägt sie dem Benutzer bei der Einrichtung von Shortcuts vor.

objective-c
// Intents.intentdefinition (visueller Editor)
Intent: OrderCoffeeIntent
Parameters:
  - beverage (String)
  - size (String)
  - quantity (Integer)
Response:
  - orderNumber (String)
  - price (CurrencyAmount)
Phrases:
  - "Order coffee in MyApp"
  - "Get a latte from MyApp"

Sprachinteraktion und INUIHostedViewProviding

INUIHostedViewProviding ist ein Protokoll, das Intents Extension ermöglicht, vor der Ausführung eines Befehls eine benutzerdefinierte Oberfläche innerhalb von Siri anzuzeigen. Bei der Buchung einer Fahrt kann die Erweiterung beispielsweise eine Karte mit Route und Kosten anzeigen, und der Benutzer bestätigt die Aktion durch Antippen.

Konfiguration der Oberfläche

Das Protokoll definiert die Methode configure(with:for:completion:), bei der die Erweiterung den Intent erhält und einen UIViewController zurückgibt, der in Siri eingebettet wird. Die Größe des Controllers ist begrenzt — maximale Höhe 200 Punkte. Es wird empfohlen, kompakte Karten mit wichtigen Informationen zu verwenden: Betrag, Zeit, Adresse.

Die benutzerdefinierte Oberfläche ist optional — wenn die Erweiterung INUIHostedViewProviding nicht implementiert, zeigt Siri eine Standardkarte mit dem Intent-Typ und App-Namen an. Für die meisten Intents ist die Standard-Benutzeroberfläche ausreichend, und Apple empfiehlt, eine benutzerdefinierte Oberfläche nur dann hinzuzufügen, wenn sie das Verständnis tatsächlich verbessert — beispielsweise zur Anzeige einer Route oder zur Bestätigung einer Zahlung.

Sicherheit und Bestätigung

Für Intents, die mit Finanzen oder persönlichen Daten zusammenhängen, ist eine Authentifizierung erforderlich. INIntentResponse unterstützt den Code requiresAuthentication, der Siri zwingt, vor der Ausführung Face ID oder Touch ID anzufordern. Nach der Authentifizierung erhält die Erweiterung die Bestätigung über einen separaten handle-Aufruf, bei dem der Authentifizierungsstatus überprüft wird.

Apple betont ausdrücklich: Intents Extension sollte kein eigenes Passwort oder biometrische Daten anfordern — es wird die Systemauthentifizierung verwendet. Das Speichern von Zugriffstoken in der Keychain mit gemeinsamem Zugriff zwischen App und Erweiterung ist eine Standardpraxis für langlebige Sitzungen.

swift
class IntentViewController: UIViewController {

    func configure(
        with intent: INIntent,
        completion: @escaping
            (UIViewController?) -> Void
    ) {
        let cardView = ConfirmationCardView()
        let hostingController =
            UIHostingController(rootView: cardView)
        completion(hostingController)
    }
}

Häufig gestellte Fragen

Kann Intents Extension ohne Siri verwendet werden?

Ja, die Erweiterung kann Intents aus der Shortcuts-App ohne Spracheingabe verarbeiten. Der Benutzer erstellt eine Verknüpfung aus den vorgeschlagenen Aktionen, und die Erweiterung führt sie ohne Beteiligung von Siri aus.

Welche iOS-Versionen unterstützen benutzerdefinierte Intents?

Benutzerdefinierte Intents sind ab iOS 14 verfügbar. Für iOS 10–13 sind nur die standardmäßigen SiriKit-Domänen verfügbar. Benutzerdefinierte Intents erfordern Intents.intentdefinition und die Generierung von Swift-Klassen.

Wie viel Zeit wird für die Verarbeitung eines Intents gegeben?

Siri wartet etwa 15 Sekunden auf die Antwort der Erweiterung. Bei Überschreitung des Limits teilt Siri dem Benutzer mit, dass die Aktion nicht abgeschlossen werden konnte. Verwenden Sie für langlaufende Vorgänge den Antwortcode inProgress.

Wie übergebe ich ein Autorisierungstoken an Intents Extension?

Verwenden Sie die Keychain mit gemeinsamem Zugriff über eine Access Group zwischen der Haupt-App und der Erweiterung. App Group shared UserDefaults ist eine Alternative, aber in Bezug auf die Sicherheit der Keychain unterlegen.

Wie unterscheidet sich Intents Extension von Intents UI Extension?

Intents Extension verarbeitet die Logik — resolve, confirm, handle. Intents UI Extension bietet eine benutzerdefinierte Oberfläche zur Anzeige innerhalb von Siri über INUIHostedViewProviding. Beide können zusammenarbeiten.

Zusammenfassung

  • Intents Extension verarbeitet Siri-Sprachbefehle und Shortcuts-Verknüpfungen über das INIntentHandler-Protokoll
  • SiriKit bietet über 20 Standard-Domänen und unterstützt benutzerdefinierte Intents seit iOS 14
  • Der Intent-Lebenszyklus umfasst drei Phasen: resolve (Klärung), confirm (Bestätigung) und handle (Ausführung)
  • Benutzerdefinierte Intents werden in Intents.intentdefinition mit Parametern, Antworten und Beispielphrasen für Siri erstellt
  • INUIHostedViewProviding ermöglicht die Anzeige einer benutzerdefinierten Bestätigungsoberfläche innerhalb von Siri vor der Ausführung
  • Für finanzielle und private Aktionen wird die Systemauthentifizierung über Face ID oder Touch ID verwendet

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch