Siri Intent Extension - Einfach nur lesen ohne Donation?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Siri Intent Extension - Einfach nur lesen ohne Donation?

    Hallo Leute,

    endlich Urlaub, Regenwetter und Zeit, neue Themen anzugehen :)

    Ich möchte meiner App eine Siri Intent Extension zur Seite stellen, die in der "Kurzbefehle"-App erscheinen soll, damit man sie sprachgesteuert aufrufen kann. Die Extension liest dann nur einen Antwort-String vor. Klingt einfach, oder?

    Bisher habe ich Siri für die App aktiviert, die Extension hinzugefügt, eine Intention inkl. Suggestion definiert und (Dummy-) Handler implementiert. Leider zeigt "Kurzbefehle" diese bisher nicht an und ich vermute, es liegt an einer fehlenden Donation. Nun bin ich nicht ganz sicher, das Prinzip der Donations (für meinen Anwendungsfall) richtig verstanden zu haben: Meine App soll nicht gestartet werden (der Ausgabestring wird von der Extension ermittelt), es gibt keine Parameter, Bestätigung, je nicht einmal eine eigene Intention-UI. Es soll nur bei Siri der Text ausgegeben bzw. gesprochen werden. Entsprechend gibt es in der App auch keinen passenden Workflow, an den ich die Donation hängen könnte.

    Muss ich dennoch eine Donation (z. B. beim App-Start) erstellen, damit der Shortcut erkannt wird? Dann müsste die App ja mindestens einmal gestartet werden, damit die Extension benutzt werden kann. Ist dann auch eine Autorisierung von Siri in der App nötig? Alle Beispiele, die ich im Web gefunden habe, haben viel komplexere Anwendungen, mit Workflows innerhalb der App. Muss ich den Aufwand wirklich treiben oder was habe ich noch nicht richtig verstanden?

    Bin für jede Hilfe dankbar, Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Zur Ergänzung: Wenn ich die Donation mit dem folgenden Code bei App-Start erstelle, wird der Shortcut gelistet:

    Quellcode

    1. SRNextLessonIntent *nextLessonIntent = [[SRNextLessonIntent alloc] init];
    2. nextLessonIntent.suggestedInvocationPhrase = @"SchoolRomm Test-Intent";
    3. INInteraction* interaction = [[INInteraction alloc] initWithIntent:nextLessonIntent response:nil];
    4. [interaction donateInteractionWithCompletion:^(NSError * _Nullable error)
    5. {
    6. if (error)
    7. {
    8. NSLog(@"Failed to donate interaction: %@ ", [error localizedDescription] );
    9. }
    10. }];
    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Nur zum Abschluss: Die Reaktionen im Apple Developer Forum waren genauso zahlreich wie hier :)

    Ich erstelle jetzt wie oben gesagt Donations beim Start der App und solange diese nicht ausgeführt wurden, sind die entsprechenden Aktionen unter "Kurzbefehle" auch nicht gelistet.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.