Grundlegendes zu SiriKit-Konzepten
In diesem Artikel werden die wichtigsten Konzepte behandelt, die für die Arbeit mit SiriKit in einer Xamarin.iOS-App erforderlich sind.
Neu bei iOS 10 ermöglicht SiriKit eine Xamarin.iOS-App, Dienste bereitzustellen, die für den Benutzer über Siri und die Karten-App auf einem iOS-Gerät zugänglich sind. Diese Funktionalität wird in einer oder mehreren App-Erweiterungen mit den neuen Intents - und Intents-UI-Frameworks bereitgestellt.
SiriKit ermöglicht es einer iOS-App, Dienste bereitzustellen, die für den Benutzer mithilfe von Siri und der Karten-App auf einem iOS-Gerät mit App-Erweiterungen und den neuen Intents- und Intents-UI-Frameworks zugänglich sind.
Siri arbeitet mit dem Konzept von Do Standard s, Gruppen von bekannten Aktionen für verwandte Aufgaben. Jede Interaktion, die die App mit Siri hat, muss wie folgt in einen seiner bekannten Dienste fallen Standard:
- Audio- oder Videoanrufe.
- Buchen Sie eine Fahrt.
- Verwalten von Trainingseinheiten.
- Messaging:
- Suchen nach Fotos.
- Senden oder Empfangen von Zahlungen.
Wenn der Benutzer eine Anfrage von Siri unter Einbeziehung eines der Dienste der App-Erweiterung sendet SiriKit die Erweiterung an ein Intent-Objekt , das die Anforderung des Benutzers zusammen mit allen unterstützenden Daten beschreibt. Die App-Erweiterung generiert dann das entsprechende Response-Objekt für den angegebenen Intent, der angibt, wie die Erweiterung die Anforderung verarbeiten kann.
Benutzeroberflächenerweiterungen "Intents" und "Intents"
Sowohl Siri als auch die Karten App interagieren mit den Diensten der App über zwei verschiedene Arten von App-Erweiterungen:
- Intents Extension – Stellt Siri und Karten mit dem Inhalt der App bereit und führt die erforderlichen Aufgaben aus, um alle unterstützten Absichten zu erfüllen.
- Intents UI-Erweiterung – Stellt eine benutzerdefinierte Benutzeroberfläche bereit, die für den Inhalt der App innerhalb von Siri oder Karten angezeigt wird.
Die App muss eine Intents-Erweiterung bereitstellen, um SiriKit zu unterstützen, und sie ist für die Bereitstellung von Informationen verantwortlich, die Siri und Karten dem Benutzer präsentieren können und um Intents zu behandeln.
Das Erstellen einer Intents-UI-Erweiterung ist optional, da Siri in der Regel alle Benutzerinteraktionen verarbeitet und über eine standardmäßige integrierte Benutzeroberfläche zum Darstellen von Informationen in jeder unterstützten Aufgabe verfügt Standard s. Durch die Bereitstellung einer Intents-UI-Erweiterung kann die App das Intent UI-Framework verwenden, um eine umfangreiche, benutzerdefinierte Benutzeroberfläche mit dem Branding der App und zusätzlichen Informationen darzustellen.
Siri und die Karten App-Rolle
Die gesprochenen Anforderungen des Benutzers werden von Siri verarbeitet und semantisch analysiert, wodurch diese Anforderungen in umsetzbare Absichten umgewandelt werden, die die Intent-Erweiterungen verarbeiten können.
Karten verwendet die Intent-Erweiterungen der App, um Informationen in der Kartenoberfläche als Reaktion auf die Aktionen des Benutzers anzuzeigen. Wie z. B. das Anfordern von Restaurants in der Nähe oder das Abrufen der Restaurantbewertungen der App.
Sowohl Siri als auch Karten verwalten alle Interaktionen des Benutzers und zeigen Ergebnisse über die Standardsystemschnittstelle an. Die Rolle der App-Erweiterungen besteht in erster Linie darin, die daten bereitzustellen, die angezeigt werden. Optional kann die App eine Intents-UI-Erweiterung bereitstellen und eine benutzerdefinierte Benutzeroberfläche präsentieren, um die Standardsystemschnittstelle zu verbessern.
Interagieren mit Siri Via SiriKit
In diesem Abschnitt wird eine Übersicht darüber präsentiert, wie SiriKit dem Benutzer die Interaktion mit der App mithilfe von Siri ermöglicht. Im Sinne dieses Beispiels verwenden wir die gefälschte MonkeyChat-App:
MonkeyChat behält ein eigenes Kontaktbuch der Freunde des Benutzers bei, die jeweils einem Bildschirmnamen zugeordnet sind (z. B. Bobo), und ermöglicht es dem Benutzer, Textchats nach seinem Bildschirmnamen an jeden Freund zu senden.
Es gibt viele Möglichkeiten, wie der Benutzer eine Interaktion mit der App initiieren kann, da unterschiedliche Personen möglicherweise dieselbe Anforderung in vielen verschiedenen Formen stellen.
Wenn der Benutzer beispielsweise eine Nachricht an seinen Freund Bobo senden wollte, könnte er die folgende Unterhaltung mit Siri führen:
Benutzer: Hey Siri, eine MonkeyChat-Nachricht senden.
Siri: Wem?
Benutzer: Bobo.
Siri: Was möchten Sie Bobo sagen?
Benutzer: Bitte senden Sie weitere Bananen.
Eine andere Person kann dieselbe Anfrage mit einer anderen Unterhaltung stellen:
Benutzer: Senden Sie eine Nachricht an Bobo auf MonkeyChat.
Siri: Was möchten Sie Bobo sagen?
Benutzer: Bitte senden Sie weitere Bananen.
Und ein anderer Benutzer kann eine noch kürzere Anforderung stellen:
Benutzer: MonkeyChat Bobo bitte mehr Bananen senden.
Siri: Ok, Nachricht senden bitte mehr Bananen an Bobo auf Monkeychat.
Oder stellen Sie sogar dieselbe Anforderung in einer anderen Sprache vor:
Benutzer: MonkeyChat Bobo s'il vous plaît envoyer plus de bananes.
Siri: Oui, envoi message s'il vous plaît envoyer plus de bananes à Bobo sur Monkeychat.
Ein anderer Benutzer ist in seiner Unterhaltung möglicherweise sehr ausführlich:
Benutzer: Hey Siri, können Sie bitte tun, und starten Sie die MonkeyChat-App, um einen Text mit der Nachricht zu senden bitte mehr Bananen zu senden.
Siri: Wem?
Benutzer: Mein bester Pal Bobo.
Darüber hinaus gibt es viele Möglichkeiten, wie Siri auf eine Anfrage antworten kann, einige basierend auf der Art und Weise, wie die Anfrage gestellt wurde:
- Durch halten sie die Home Button - Siri bietet mehr visuelle Antworten mit eingeschränktem verbalem Feedback.
- Durch "Hey Siri" - Siri wird verbaler sein und weniger visuelle Antworten liefern.
Siri ist auch darauf abgestimmt, die Barrierefreiheitsanforderungen des Benutzers zu erfüllen und basierend auf diesen Anforderungen zu interagieren und darauf zu reagieren.
Unabhängig davon, wie eine Anfrage gestellt wird oder wie Siri auf die Anfrage reagiert, verarbeitet Siri die Unterhaltung mit dem Benutzer und der App (über seine Erweiterungen) bietet die Funktionalität.
Wenn der Benutzer eine mündliche Anfrage von Siri stellt, sind dies die Schritte, die Siri befolgen wird:
- Zunächst nimmt Siri die Audiodaten der Spracherkennung des Benutzers an und wandelt ihn in Text um.
- Als Nächstes wird der Text in eine Absicht konvertiert, eine strukturierte Darstellung der Anforderung des Benutzers.
- Basierend auf der Absicht wird Siri Maßnahmen ergreifen, um die Anforderung des Benutzers auszuführen.
- Schließlich präsentiert Siri antworten (sowohl visuell als auch verbal) für den Benutzer basierend auf der getroffenen Aktion.
Es gibt drei Standard Möglichkeiten, wie die App an der Unterhaltung des Benutzers mit Siri teilnehmen kann:
- Vokabular – So teilt die App Siri die Wörter mit, die sie kennen müssen, um damit zu interagieren.
- App-Logik – Dies sind die Aktionen und Antworten, die die App basierend auf bestimmten Absichten ausführen wird.
- Benutzeroberfläche – Dies ist die optionale, benutzerdefinierte Benutzeroberfläche , in der die App antworten kann.
Beispiel
Untersuchen Sie angesichts der oben genannten Informationen, wie die folgende Unterhaltung mit der MonkeyChat-App interagieren würde:
Benutzer: Hey Siri, eine Nachricht an Bobo auf MonkeyChat senden.
Siri: Was möchten Sie Bobo sagen?
Benutzer: Bitte senden Sie weitere Bananen.
Die erste Rolle, die die App in die Unterhaltung einnimmt, besteht darin, Siri dabei zu helfen, die Sprache des Benutzers zu verstehen:
Siri hat nicht den Namen "Bobo" in seiner Datenbank, aber die App tut und hat diese Informationen über sein Vokabular mit Siri geteilt. Die App hilft Siri auch zu erkennen, dass Bobo ein Empfänger ist, da sie siri als Kontakt angegeben hat.
Siri weiß, dass mehr erforderlich ist, um eine Nachricht als nur einen Empfänger zu senden. Daher wird schnell mit der App-Erweiterung überprüft, ob eine Nachricht Inhalte erfordert. Da MonkeyChat tut, antwortet Siri dem Benutzer mit der Frage: "Was möchten Sie zu Bobo sagen?"
Im obigen Beispiel hat der Benutzer geantwortet: "Bitte senden Sie weitere Bananen", die Siri in eine strukturierte Absicht bündeln wird:
Die strukturierte Absicht enthält die folgenden Informationen:
- Do Standard: Nachrichten
- Intent: sendMessage
- Empfänger: Bobo
- Inhalt: Bitte senden Sie weitere Bananen
Jede Aufgabe Standard verfügt über einen Satz von Aktionen, die innerhalb dieser Aktionen ausgeführt werden können, und basierend auf der Aufgabe Standard und der Aktion, null bis viele Parameter können in die an die App gesendete Absicht einbezogen werden.
Die Absicht wird dann zur Verarbeitung an die App-Erweiterung gesendet. Als Ergebnis der Verarbeitung der Absicht generiert die App eine IntentResponse , die mit dem Intent gebündelt wird, und parameter enthält, die beschreiben, was die App mit dem Intent getan hat.
Jede IntentResponse enthält auch einen Antwortcode , der Siri informiert, ob die App die Anforderung abschließen konnte oder nicht. Einige Do Standard s weisen sehr spezifische Fehlerantwortcodes auf, die ebenfalls gesendet werden können.
Schließlich enthält die IntentResponse eine NSUserActivity
(wie solche, die zur Unterstützung von Hand Off verwendet wurden). Die NSUserActivity
App wird verwendet, um die App zu starten, wenn die Antwort erfordert, dass sie die Siri-Umgebung verlassen und die App eingeben, um sie abzuschließen.
Siri erstellt automatisch eine geeignete, NSUserActivity
um die App zu starten und die Abholung, wo der Benutzer in der Siri-Umgebung aufgehört hat. Die App kann jedoch bei Bedarf eigene NSUserActivity
informationen bereitstellen.
Nachdem die App die Absicht verarbeitet und eine Antwort auf Siri zurückgegeben hat, werden die Ergebnisse dem Benutzer angezeigt (sowohl verbal als auch visuell):
Siri verfügt über mehrere integrierte Antwortbenutzeroberflächen für jede der Aufgaben Standard für die App verfügbar. Da MonkeyChat jedoch eine optionale Intent-UI-Erweiterung bereitgestellt hat, wird sie verwendet, um die Ergebnisse der Unterhaltung für den Benutzer im obigen Beispiel darzustellen.
Der Intent-Lebenszyklus
Es gibt drei Standard Aufgaben, die die App-Erweiterung beim Umgang mit Intents ausführen muss:
- Die App muss jeden Parameter in einem Ereignis auflösen . Daher ruft die App "Resolve" mehrmals (einmal pro Parameter) und manchmal mehrmals auf demselben Parameter auf, bis die App und der Benutzer sich darüber einig sind, was angefordert wird.
- Die App muss bestätigen , dass sie die angeforderte Absicht verarbeiten kann, und Siri über das erwartete Ergebnis informieren kann.
- Schließlich muss die App die Absicht behandeln und die Schritte ausführen, um das angeforderte Ergebnis zu erzielen.
Die Auflösungsphase
Die Auflösungsphase hilft Siri, die Werte zu verstehen, die der Benutzer bereitgestellt hat, und stellt sicher, dass der Benutzer tatsächlich bedeutet, was passiert, wenn die Absicht von der App verarbeitet wird.
Diese Phase bietet der App auch die Möglichkeit, das Verhalten von Siri während der Unterhaltung mit dem Benutzer zu beeinflussen. Dazu stellt die App eine Lösungsantwort bereit. Es gibt eine Reihe vordefinierter Antworten auf die verschiedenen Datentypen, die Siri versteht.
Die häufigste Lösungsantwort der App ist "Erfolg", was bedeutet, dass die App mit dem spezifischen Datenteil eines Parameters (z. B. Benutzername) mit einer Information übereinstimmt, über die sie informiert ist.
Es kann vorkommen, dass die App bestätigen muss, dass eine bestimmte Anforderung mit dem richtigen Informationsteil übereinstimmt, über den sie informiert ist. In diesen Fällen wird eine Bestätigungsantwort gesendet, um dem Benutzer eine Ja- oder Nein-Frage zu stellen, z. B. "Nachricht an Bobo the Great senden?"
Es kann andere Fälle geben, in denen die App den Benutzer aus einer kurzen Liste von Optionen auswählen muss. In diesem Fall stellt die App eine Mehrdeutigkeitsantwort mit einer Liste von zwei bis zehn Optionen bereit, aus denen der Benutzer auswählen kann, z. B.:
Who do you want to message?
* Bobo the Great
* Bobo Jr.
* Little Bobo
Siri behandelt den Benutzer, der die Auswahl getroffen hat, entweder verbal oder durch Interaktion mit der Siri-Benutzeroberfläche, und das Ergebnis wird an die App zurückgesendet.
In anderen Fällen gibt es möglicherweise nicht genügend Informationen für die App, um den Parameter aufzulösen, oder es gibt zu viele Übereinstimmungen, um die Verwendung von Mehrdeutigkeit zu beheben (z. B. 80 Benutzer mit Bobo in ihrem Namen). In diesem Fall sendet die App eine NeedsMoreDetails-Antwort , und Siri fordert den Benutzer auf, spezifischer zu sein.
Wenn der Benutzer keinen Wert bereitgestellt hat, der für die Verarbeitung der Absicht erforderlich ist, kann er eine NeedsValue-Antwort senden, damit Siri den Benutzer zur Eingabe des Werts auffordert.
Wenn die App keinen Wert unterstützt, den der Benutzer für einen bestimmten Parameter angegeben hat, kann sie die Antwort "UnsupportedWithReason " senden, um einen Grund anzugeben, warum der Wert nicht unterstützt wurde. Siri fordert den Benutzer dann auf, einen völlig neuen Wert einzugeben und ihm den Grund zu geben, warum er erforderlich ist.
Verwenden Sie schließlich die Antwort "NotRequired ", um Siri mitzuteilen, dass die App keinen Wert für einen bestimmten Parameter benötigt. Wenn der Benutzer trotzdem einen bereitstellt, wird er einfach von Siri ignoriert.
Die Phase "Bestätigen"
Die Phase "Bestätigen" hat zwei Zwecke:
- Um Siri das erwartete Ergebnis der Behandlung eines Intent mitzuteilen, damit Siri dem Benutzer mitteilen kann, was passiert.
- Bietet eine Möglichkeit, alle erforderlichen Zustände zu überprüfen, die die App möglicherweise benötigt, um die vom Benutzer vorgelegte Anforderung abzuschließen, z. B. über genügend Geld in der Bank, um die angeforderte Zahlung zu tätigen.
Die App stellt eine Intent-Antwort aus dem Bestätigungsschritt bereit, die mit so vielen Informationen gefüllt werden sollte, die die App verfügbar hat, damit Siri sie effektiv mit dem Benutzer kommunizieren kann.
Basierend auf dem Typ "Do Standard und Action" kann Siri den Benutzer zur Bestätigung auffordern, z. B. vor dem Senden einer Zahlung oder Buchung einer Fahrt.
Die Handle-Phase
Die Handle-Phase ist der wichtigste Teil der Arbeit mit einer Absicht, da es der Punkt ist, an dem die App die Anforderung des Benutzers erfüllt, indem er die Aufgabe ausführt, die er zu erledigen hat.
Genau wie in der Bestätigungsphase muss die App so viele Informationen zum Ergebnis wie möglich bereitstellen, damit Siri dies mit dem Benutzer in Beziehung setzen kann. Manchmal werden diese Informationen visuell dargestellt oder in anderen Fällen wird Siri sie einfach wieder an den Benutzer sprechen.
Es kann vorkommen, dass die App zusätzliche Zeit zum Verarbeiten einer bestimmten Anforderung benötigt, z. B. Netzwerkanrufverzögerungen oder wenn eine Liveperson die Anforderung erfüllen muss (z. B. Abschließen und Versenden einer Bestellung oder Fahren eines Autos an den Standort des Benutzers). Wenn Siri auf eine Antwort von der App wartet, wird dem Benutzer eine Warte-UI angezeigt, die ihnen mitteilt, dass die App die Anforderung verarbeitet.
Im Idealfall sollte die App höchstens innerhalb von zwei bis drei Sekunden eine Antwort auf Siri bereitstellen. Wenn die App weiß, dass die Verarbeitung einer bestimmten Antwort länger dauern wird, muss sie einen InProgress-Antwortcode an Siri senden. Siri informiert dann den Benutzer darüber, dass die App die Anforderung im Hintergrund verarbeitet und dies auch dann weiter tun wird, wenn sie die Siri-Umgebung verlassen.
Hinzufügen von SiriKit zur App
Mit SiriKit in iOS 10 hat Apple zwei neue Erweiterungspunkte erstellt:
- Intents Extension – Stellt Siri den Inhalt der App bereit und führt die erforderlichen Aufgaben aus, um alle unterstützten Absichten zu erfüllen.
- Intents UI-Erweiterung – Stellt eine benutzerdefinierte Benutzeroberfläche bereit, die für den Inhalt der Apps innerhalb von Siri angezeigt wird.
Es gibt auch eine API, die Siri Wörter und Ausdrücke zur Unterstützung der Erkennung in Form von:
- App-Vokabular – Wörter und Ausdrücke, die für jeden Benutzer der App gemeinsam sind.
- Benutzervokabular – Wörter und Ausdrücke, die für einen bestimmten App-Benutzer eindeutig sind.
Die Intents-Erweiterung
Die Intents-Erweiterung ist für die Behandlung der Standard Interaktionen zwischen der App und Siri wie folgt verantwortlich:
Die Intent-Erweiterung kann einen oder mehrere Intents unterstützen, es liegt an dem Entwickler, zu entscheiden, wie sie SiriKit in der App implementieren möchten. Der Entwickler könnte auch eine separate Intent-Erweiterung für jeden Intent hinzufügen, der behandelt werden muss. Das heißt, Apple fordert, dass der Entwickler die Anzahl der Intent-Erweiterungen begrenzt, sodass Siri nicht mehrere Prozesse für die App geöffnet hat, was mehr Arbeitsspeicher und Zeit für die Verarbeitung erfordert.
Der Entwickler sollte auch beachten, dass die Intent-Erweiterung im Hintergrund ausgeführt wird, während Siri aktiv ist. Auf diese Weise kann Siri aktiv eine Unterhaltung mit dem Benutzer führen und gleichzeitig mit der Erweiterung kommunizieren, um Informationen über die Anfrage zu verarbeiten.
Überlegungen zu Datenschutz und Sicherheit
Apple hat große Maßnahmen ergriffen, um sicherzustellen, dass ein Benutzer private Informationen sicher ist, wenn er mit Siri arbeitet, und als solche gibt es mehrere Interaktionen, die erfordern, dass der Benutzer auf dem iOS-Gerät angemeldet ist. Wenn Sie z. B. eine Fahrt anfordern oder eine Zahlung tätigen.
Darüber hinaus gibt es bestimmte Verhaltensweisen, die die App möglicherweise auf den Benutzer beschränken möchte, der beim Gerät angemeldet ist. In diesen Situationen kann die App das Verhalten "While Locked " anfordern. Dies erfolgt über eine Einstellung in der Info.plist
Datei.
Das lokale Authentifizierungsframework ist für die Intent-Erweiterung verfügbar, damit die App den Benutzer um zusätzliche Authentifizierungsinformationen bitten kann, auch wenn das Gerät bereits entsperrt ist.
Schließlich ist Apple Pay für die Intent-Erweiterung verfügbar, damit die App eine Transaktion mit Apple Pay abschließen kann und das integrierte Apple Pay-Blatt oberhalb der Siri-Schnittstelle angezeigt wird.
Darüber hinaus möchte Apple sicherstellen, dass Benutzer wissen, wann sie Informationen an eine Drittanbieter-App senden, und als solche muss der Benutzer den spezifischen Namen der App (wie im Bundle-Anzeigenamen der App angegeben) sagen, wenn eine Anforderung gestellt wird.
Apple hat Siri entwickelt, um natürliche, flüssige Unterhaltungen mit dem Benutzer durchzuführen und aus diesem Gründen kann der Bündelname der App in vielen Teilen der Sprache verwendet werden, wo immer es in die Anforderung des Benutzers passt.
Eine der allgemeinen Aktionen, die Benutzer tun werden, besteht darin, den Namen der App zu "verbäuben", d. h. den App-Namen zu verwenden und es als Verb in einer Anforderung zu verwenden. Beispielsweise "MonkeyChat Bobo, die waren tolle Bananen.".
Die Intents-UI-Erweiterung
Die Intents UI-Erweiterung bietet die Möglichkeit, die Benutzeroberfläche und das Branding der App in die Siri-Erfahrung zu bringen und den Benutzern das Gefühl zu geben, mit der App verbunden zu sein. Mit dieser Erweiterung kann die App die Marke sowie visuelle und andere Informationen in das Transkript integrieren.
Die Intents-UI-Erweiterung gibt immer eine UIViewController
zurück, und die App kann alles hinzufügen, was innerhalb des Ansichtscontrollers gefällt, z. B. das Anzeigen zusätzlicher Informationen, die über die anfängliche Antwort hinausgehen. Die Intents-Benutzeroberfläche kann den Benutzer auch mit dem Status eines lange ausgeführten Ereignisses aktualisieren, z. B. wie viel länger ein Fahrfreigabewagen dauert, um seinen Standort zu erreichen.
Die Intents-UI-Erweiterung wird immer zusammen mit anderen Siri-Inhalten wie dem App-Symbol und dem Namen oben auf der Benutzeroberfläche angezeigt oder, basierend auf der Absicht, Schaltflächen (wie "Senden" oder "Abbrechen") unten angezeigt.
Es gibt einige Instanzen, in denen die App die Informationen ersetzen kann, die Siri standardmäßig für den Benutzer anzeigt, z. B. Nachrichten oder Karten, in denen die App die Standardoberfläche durch eine für die App zugeschnittene ersetzen kann.
Wichtig
Obwohl es möglich ist, interaktive Elemente wie UIButtons
oder UITextFields
der Intent-UI-Erweiterung UIViewController
hinzuzufügen, sind diese streng verboten, da die Intent-Benutzeroberfläche nicht interaktiv ist und der Benutzer nicht mit ihnen interagieren kann.
Es ist völlig optional, dass die App eine Intent-UI-Erweiterung bereitstellt, da Siri einen Standardsatz der Benutzeroberfläche für jeden Intent-Typ enthält. Darüber hinaus sind die Intents-UI-Schnittstellen nur für bestimmte Absichten verfügbar, die Apple als hilfreich für den Benutzer angesehen hat.
Hinzufügen von SiriKit-Vokabular
Der letzte Teil der Implementierung von SiriKit liegt in der App, indem das erforderliche Vokabular bereitgestellt wird. Viele Apps bieten einzigartige Möglichkeiten, Informationen für den Benutzer zu beschreiben und eindeutige Möglichkeiten, wie der Benutzer Informationen für die App bereitstellt.
Aus diesem Gründen erfordert Siri die Unterstützung der App, um die Wörter und Ausdrücke zu verstehen, die für die App eindeutig sind. Einige dieser Ausdrücke sind Teil der App, sodass jeder Benutzer sie kennen und verstehen wird. Andere werden jedoch für einen bestimmten Benutzer der App einzigartig sein.
App-spezifisches Vokabular
Das App-spezifische Vokabular definiert die spezifischen Wörter und Ausdrücke, die allen Benutzern der App bekannt sind, z. B. Fahrzeugtypen oder Trainingsnamen. Da diese Teil der Anwendung sind, werden sie in einer AppIntentVocabulary.plist
Datei als Teil des Standard App-Bündels definiert. Darüber hinaus sollten diese Wörter und Ausdrücke lokalisiert werden.
Es gibt mehrere Teile einer Vokabulardatei AppIntentVocabulary.plist
:
- Beispiel-App-Verwendung – Diese stellen eine Reihe häufiger Anwendungsfälle für die Anforderungen bereit, die der Benutzer der App erstellen kann. Beispiel: "Starten eines Trainings mit MonkeyFit".
- Parameter – Diese stellen einen Satz nicht standardmäßiger Parametertypen bereit, die für die App spezifisch sind. Beispiel: Trainingsnamen für die MonkeyFit-App. Diese bestehen aus:
- Ausdruck – Ermöglicht der App, eindeutige Begriffe für die App zu definieren. Beispiel: der Trainingstyp "Bananarific" für die MonkeyFit-App.
- Aussprache - Gibt an Siri Hinweise zur Aussprache als einfache phonetische Schreibweise für einen bestimmten Ausdruck. Beispiel: "ba nana ri fic".
- Beispiel : Stellt ein Beispiel für die Verwendung des angegebenen Ausdrucks in der App bereit. Beispiel: "Start a Bananarific in MonkeyFit".
Weitere Informationen finden Sie in der Dateiformatreferenz zum App-Vokabular von Apple.
Benutzerspezifisches Vokabular
Das benutzerspezifische Vokabular wird Wörter oder Ausdrücke bereitstellen, die für einzelne Benutzer der App einzigartig sind. Diese werden zur Laufzeit über die Standard-App (nicht die App-Erweiterungen) als sortierter Satz von Ausdrücken bereitgestellt, die in einer wichtigsten Nutzungspriorität für die Benutzer sortiert sind, mit den wichtigsten Begriffen am Anfang der Liste.
Sehen Sie sich das Oben gezeigte Beispiel der MonkeyChat-App an. MonkeyChat behält eine Liste aller Kontakte des Benutzers bei, dass er über das benutzerspezifische Vokabular an Siri gesendet wird. Außerdem wird eine Liste der 10 letzten Kontakte beibehalten, die der Benutzer angezeigt hat, und er verfügt über einen Satz von Favoritenkontakten für jeden Benutzer. In diesem Beispiel sollten die bevorzugten Kontakte am Anfang unseres benutzerspezifischen Vokabulars stehen, gefolgt von den letzten Kontakten und dann den restlichen Kontakten des Benutzers.
Die folgenden Informationstypen werden von benutzerspezifischem Vokabular unterstützt:
- Kontaktnamen.
- Trainingsnamen.
- Fotoalbumnamen.
- Fotostichwörter.
Wenn die App auf das iOS-Adressbuch angewiesen ist, muss die App keine Maßnahmen ergreifen, da diese Informationen bereits für Siri verfügbar sind. Die App muss nur Kontaktnamen angeben, wenn die App über eine eigene eindeutige Datenbank von Kontakten verfügt.
Stellen Sie beim Entwerfen des Vokabulars nur die erforderlichen Werte bereit, die die Benutzer kennen und sich um sie kümmern. Vermeiden Sie die Bereitstellung von Informationen wie Telefonnummern oder E-Mail-Adressen.
Die App muss Siri auch umgehend aktualisieren, wenn sich ein benutzerspezifisches Vokabular ändert. Benutzer sind daran gewöhnt, Informationen von Siri anzufordern, sobald sie zu ihrem iOS-Gerät hinzugefügt wurde. Wenn der Benutzer beispielsweise einen neuen Kontakt in der App hinzufügt, senden Sie diese Informationen an Siri, sobald der Benutzer ihn speichert.
Wichtiger ist, dass die App Informationen aus dem Siri-Vokabular umgehend löschen muss , da ein Benutzer verärgert werden könnte, wenn er einen Teil der Informationen gelöscht hat, Aber Siri erkannte es Stunden oder Tage später noch.
Wichtig
Die App sollte das gesamte benutzerspezifische Vokabular von Siri entfernen, wenn der Benutzer die App zurücksetzt oder sich abmeldet.
SiriKit-Berechtigungen
Das letzte Stück SiriKit wird um Berechtigungen zentriert. Genau wie die Verwendung anderer Features von iOS (z. B. Fotos, Kamera oder Kontakte) müssen Benutzer der App explizit die Berechtigung erteilen, mit Siri zu sprechen.
Die App kann eine Zeichenfolge bereitstellen, die definiert, welche Informationen Siri zur Verfügung stellt, und einen Grund dafür geben, warum der Benutzer diesen Zugriff gewähren sollte.
Apple schlägt vor, dass die App die Berechtigung des Benutzers anfordern sollte, Siri zu verwenden, wenn der Benutzer die App zum ersten Mal öffnet, nachdem er auf iOS 10 aktualisiert wurde. Dies ist so, dass Benutzer über die Siri-Integration wissen und vor der genehmigungsbasierten Nutzung vor der ersten Anforderung gebrauchen können.
SiriKit und Karten
SiriKit ist ein integraler Bestandteil von iOS und nutzt das größere Intents-Framework, das iOS 10 hinzugefügt wird. Das Intents-Framework wurde entwickelt, um gemeinsame und freigegebene Aktionen und Absichten mit anderen Teilen des Systems zu teilen.
Das Intents-Framework geht nicht nur über die Siri-Integration hinaus und bietet weitere Features wie die Kontakteintegration, bei der die App zur Standardtelefonie- oder Messaging-App für bestimmte Kontakte werden kann. Intents bieten auch eine umfassende Integration mit CallKit, um Benutzern die bestmögliche VOIP-Erfahrung zu bieten.
Die Karten-App in iOS 10 hat Features wie Fahrfreigaben hinzugefügt, mit denen der Benutzer eine Fahrt direkt innerhalb der Karten UI buchen kann. SiriKit bietet einen gemeinsamen Erweiterungspunkt mit Karten, sodass Fahrfreigabe (und andere) Absichten zwischen Siri und Karten geteilt werden können.
Dies bedeutet: Wenn die App die SiriKit-Erweiterungen übernommen hat, erhält sie auch die Karten Integration kostenlos.
Entwerfen einer großartigen Siri-Erfahrung
Das Entwerfen einer großartigen Benutzererfahrung bei der Integration einer App in Siri unterscheidet sich von dem Entwerfen einer großartigen App-Benutzeroberfläche. Im Gegensatz zu normalen Situationen, in denen der Benutzer direkt auf dem Bildschirm mit der App interagiert, gibt es bei Verwendung von Siri viele Male, wenn überhaupt keine visuelle Benutzeroberfläche sichtbar ist. Wenn der Benutzer beispielsweise die Unterhaltung mit "Hey Siri" gestartet hat.
Wie Siri dem Entwickler hilft
Beim Entwerfen der Interaktionen einer App mit Siri erstellt die App eine Unterhaltungsschnittstelle, was bedeutet, dass der Kontext von der Unterhaltung abgeleitet wird, die Siri mit dem Benutzer im Namen der App hat.
Wenn kein visueller Verweis vorhanden ist, muss der Benutzer die Informationen nachverfolgen, die im Kopf angezeigt werden. Aus diesem Grund stellt Siri die bloßen Mindestinformationen dar, die erforderlich sind, um die Aufgabe zu erreichen, die der Benutzer ausführen möchte.
Die Unterhaltungsschnittstelle wird durch die Fragen und Antworten des Benutzers und Siri während der Unterhaltung geprägt. Daher ist es wichtig zu überlegen, wie Siri Fragen stellt und antwortet, wenn sie diese Schnittstelle entwerfen.
Nehmen Sie sich das folgende Beispiel für den Benutzer, der eine Nachricht erstellt, Siri antwortet möglicherweise mit der Frage " Bereit, sie zu senden?". Der Benutzer könnte auf viele verschiedene Arten antworten, z . B. "Senden", "Abbrechen" oder sogar etwas ganz, das nicht mit dieser Frage in Zusammenhang steht. Unabhängig davon, wie die Unterhaltung abgespielt wird, verarbeitet Siri sie für die App und sendet sie nur die relevanten Informationen, sobald sie verfügbar ist.
Es gibt verschiedene Möglichkeiten, wie ein Benutzer eine Unterhaltung mit Siri initiieren kann:
- Indem Sie das Gerät abholen, drücken Sie die Starttaste. In dieser Situation präsentiert Siri mehr visuelle Schnittstellen und weniger verbale Antworten.
- Indem Sie "Hey Siri" sagen und eine freihändige Unterhaltung beginnen. In dieser Situation wird Siri weniger visuell und verbaler sein.
- Verwenden von Barrierefreiheitsfeatures wie Bluetooth-fähigen Hörgeräten, bei denen die Benutzeroberfläche auf einen Benutzer mit besonderen Anforderungen zugeschnitten ist.
- Mithilfe von Car Play, bei dem der Benutzer seine Aufmerksamkeit auf das Fahren konzentrieren muss, indem er Ablenkungen auf ein Minimum hält.
Wie der Entwickler Siri hilft
Bei der Integration einer App mit Siri muss der Entwickler diese Integration häufig testen und sicherstellen, dass sie viele verschiedene Anforderungen stellen, indem sie auf so viele verschiedene Arten wie möglich nach derselben Information oder Aufgabe fragen.
Da keine beiden Personen gleich denken, ist es wichtig, dass der Entwickler so viele verschiedene Beta-Tester wie möglich erhält, um die Siri-Integration zu optimieren. Benutzer können nach Informationen fragen oder Anforderungen auf die Art und Weise stellen, die der Entwickler nie zuvor vorgenommen hat, und diese Feinabstimmung kann dazu beitragen, dass die breiteste Benutzergruppe eine großartige Erfahrung bei der Verwendung ihrer App mit Siri hat.
Testen Sie in verschiedenen Situationen und Umgebungen. Initiieren Sie die Unterhaltungen mit Siri auf alle Arten, um sicherzustellen, dass diese Unterhaltungen flüssig und natürlich bleiben. Testen Sie an Orten, an denen der Benutzer die App mehr als wahrscheinlich verwendet, z. B. in einer überfüllten Turnhalle.
Stellen Sie sicher, dass die App alle Informationen bereitstellt, die Siri für die ordnungsgemäße Darstellung der Anforderung und des Ergebnisses für den Benutzer benötigt. Dies gilt insbesondere bei der Verwendung von Siri in einer Hands Free-Situation.
Siri Designrichtlinien
Denken Sie immer daran, dass Siri eine Unterhaltung mit dem Benutzer im Namen der App hat. Der Entwickler möchte sich nicht sicher sein, dass diese Unterhaltung so flüssig und natürlich wie möglich bleibt.
Wie bei allen wichtigen Unterhaltungen muss der Entwickler Folgendes sicherstellen:
- Dass die App für die Unterhaltung vorbereitet ist.
- Dass die App genau anhört, was der Benutzer zu erreichen versucht.
- Dass die App die entsprechenden Fragen zu den entsprechenden Zeiten stellt.
- Dass die App auf die Anforderung mit den Informationen antwortet, die der Benutzer sucht.
Vorbereiten der Unterhaltung
Als Erstes sollten Sie daran denken, dass die Benutzer der App nicht genau wie der Entwickler sein werden. Sie können aus unterschiedlichen Hintergründen stammen, unterschiedliche Sprachen sprechen oder spezielle Anforderungen haben, wenn Sie mit der App arbeiten.
Da der Entwickler die App entwickelt und erstellt hat, verfügen sie über tiefe, intime Kenntnisse sowohl der App als auch ihrer inneren Funktionsweise und Funktionen, die ein typischer Benutzer nicht hat. Daher fragt der Entwickler möglicherweise die Anfrage von Siri anders als ein normaler Benutzer.
Deshalb ist es wichtig, so viele verschiedene Personen wie möglich über Siri mit der App interagieren zu lassen. Benutzer können Anfragen an die App über Siri stellen, dass der Entwickler nie gedacht hat oder wie der Entwickler dies nicht berücksichtigt hat.
Sicherstellen, dass die App ein guter Listener ist
Der Entwickler muss sicherstellen, dass die App ein guter Listener ist und die Besonderheiten der Unterhaltung erhält, die den Erwartungen des Benutzers entspricht. Es ist aber auch möglich, dass sie möglicherweise nicht alle Informationen bereitgestellt haben, die die App zum Erreichen der angeforderten Aufgabe benötigt.
Es gibt mehrere Möglichkeiten, wie die App diese Situation behandeln kann:
- Wählen Sie einen guten Standardwert für den fehlenden Wert aus. Eine Fahrfreigabe-App kann z. B. standardmäßig den aktuellen Standort des Benutzers verwenden, wenn er nicht angegeben hat, von wo er abgeholt werden soll.
- Erstellen Sie einen erratenen Schätzwert – Mithilfe bestimmter Informationen, die die App für den Benutzer gesammelt hat, kann die App möglicherweise die fehlenden Informationen erraten, z. B. das Ausfüllen einer fehlenden Mobiltelefonnummer aus den Kontaktinformationen des Benutzers. Es sollte jedoch darauf geachtet werden, schlechte Überraschungen zu vermeiden, z. B. das Auswählen der teuersten Option usw.
- Aufforderung für weitere Informationen – Die App kann Siri den Benutzer zur Eingabe des fehlenden Werts auffordern lassen. Der Schlüssel hier ist jedoch, dass die Unterhaltungen einfach und an den Punkt gehalten werden. Benutzer werden schnell frustriert, wenn sie mehrere Fragen beantworten müssen, um ihre Anfrage zu erreichen.
- Behandeln Von Falschinformationen ordnungsgemäß – Der Benutzer kann einen Wert bereitstellen, den die App nicht erwartet hat oder dass sie im angegebenen Kontext nicht verarbeitet werden kann. Stellen Sie sicher, dass die App diese Situation dem Benutzer auf eine Weise bezieht, die es klar und einfach macht, sie zu korrigieren.
Wenn die App einen einzelnen wert enthält, der in Frage steht, ist die bevorzugte Möglichkeit, dies zu behandeln, siri den Benutzer zur Bestätigung auffordern zu lassen. Beispiel: "Bedeuteten Sie Bobo der Große?", auf den sie mit einer einfachen Ja- oder Nein-Antwort antworten können.
Wenn es eine Situation gibt, in der mehrere mögliche Auswahlmöglichkeiten für einen einzelnen Wert korrekt sein könnten, ist die Mehrdeutigkeit die bevorzugte Behandlungsmethode. In dieser Situation kann Siri den Benutzer mit bis zu zehn möglichen Optionen zur Auswahl auffordern. Zum Beispiel:
Who do you want to send the message to?
* Bobo the Great!
* Bobo Jr.
* Little Bobo
Wenn noch immer eine Frage gestellt wird, bitten Sie Siri, dem Benutzer eine völlig neue, spezifischere Antwort für einen bestimmten Wert bereitzustellen.
Endgültige Bestätigung anfordern
Bevor die App tatsächlich die Aufgabe ausführt, um die Anforderung des Benutzers zu erfüllen, überprüft Siri die App-Erweiterung, um sicherzustellen, dass alles vorhanden ist. Hat der Benutzer beispielsweise genug Geld in ihrem Konto, um die angeforderte Zahlung zu tätigen?
Darüber hinaus muss die App sicherstellen, dass sie alle möglichen Informationen für Siri bereitstellt, damit sie sie dem Benutzer präsentieren und bestätigen kann, dass die Aufgabe, die durchgeführt werden soll, ihren Erwartungen entspricht.
Sobald der Benutzer die Anforderung bestätigt hat und die App sie ausgeführt hat, muss die App erneut sicherstellen, dass sie alle Ergebnisse wieder an Siri übermittelt hat, damit sie sie mit dem Benutzer in Beziehung setzen kann.
Antworten auf die Anforderung
Siri verfügt über mehrere integrierte Benutzeroberflächen für jeden der Do Standard s und Aktionen, über die es weiß. Gegebenenfalls kann die App jedoch eine benutzerdefinierte Intent-UI-Erweiterung bereitstellen, um die Benutzererfahrung zu erweitern, indem das Branding und die Benutzeroberfläche der App oder mehr Informationen präsentiert werden, als in der Anforderung vorhanden waren.
Dies bedeutet, dass Die Zurückhaltung beim Entwerfen von benutzerdefinierten Schnittstellen für Siri verwendet werden sollte. Normalerweise möchte der Benutzer eine bestimmte Aufgabe so schnell wie möglich erledigen und nicht mit unnötigen Informationen überladen werden.
Es sollte auch darauf geachtet werden, dass die benutzerdefinierte Benutzeroberfläche in allen verschiedenen iOS-Geräten und Ausrichtungen korrekt aussieht und reagiert, die der Benutzer möglicherweise über das Gerät verfügt oder verwendet.
Verwenden Sie ggf. die SiriKit-API, um redundante Informationen auszublenden, die bereits in der Siri-Standardbenutzeroberfläche vorhanden sind. Stellen Sie jedoch sicher, dass die App weiterhin die Informationen für Siri bereitstellt, damit sie sie in einer Hands Free-Situation verbal präsentieren kann.
Es kann Situationen geben, in denen Siri die App startet, um die Anforderung des Benutzers zu erfüllen, z. B. die Präsentation der Fotos, die der Benutzer angefordert hat. Überraschen Sie den Benutzer in diesen Situationen nicht. Zeigen Sie die erwarteten Informationen an, ohne dass Zwischenschritte oder weitere Interaktionen erforderlich sind. Zeigen Sie niemals Informationen an, oder führen Sie eine Aufgabe aus, die der Benutzer nicht erwartet.
Polieren des Designs
Es gibt mehrere Schritte, die Apple vorschlagen, das Design der Unterhaltungsschnittstellen zu optimieren. Erstens ist es, klare, präzise Vokabular und Anwendungsfallbeispiele für Siri bereitzustellen.
Eine der Möglichkeiten, wie ein Benutzer die App erkennt, besteht darin, eine Unterhaltung mit Siri zu initiieren und zu fragen: "Was können Sie tun?" Siri zeigt verschiedene Dinge, die es tun kann, einschließlich der App des Entwicklers und des Beispielhelden Anwendungsfälle, die es über seine plist
Datei bereitgestellt hat.
So schreiben Sie gute Beispielanwendungsfälle:
- Stellen Sie sicher, dass die Beispiele den App-Namen enthalten.
- Halten Sie das Beispiel kurz und punktum.
- Stellen Sie mehrere Beispiele für die einzelnen Intents bereit, die von der App unterstützt werden.
- Priorisieren Sie sowohl die Absichten als auch die Darin enthaltenen Beispiele basierend auf den am häufigsten verwendeten Anwendungsfällen für die App.
- Stellen Sie sicher, dass die App lokalisierte Beispiele bereitstellt.
- Stellen Sie sicher, dass jedes angegebene Beispiel innerhalb der App wie erwartet funktioniert.
- Vermeiden Sie die Adressierung von Siri in den Beispielen, also schließen Sie keinen Text wie "Hey Siri..." ein.
- Vermeiden Sie unnötige Angenehme wie "Bitte" oder "Danke".
Nehmen Sie sich die entsprechende Zeit, um zu erkunden und zu experimentieren, wie die App die Unterhaltung gestalten kann, die Siri mit dem Benutzer in seinem Namen hat. Stellen Sie sicher, dass Sie während des gesamten Prozesses mit typischen Benutzern sprechen, da sich ihre Interaktionen mit und erwartungen an die App im Laufe der Zeit ändern können.
Denken Sie immer daran, die App in verschiedenen Situationen und alle verschiedenen Methoden zu testen, um eine Unterhaltung mit Siri aufzurufen. Testen Sie an realen Orten, an denen der Benutzer möglicherweise die App verwendet, und zwar nicht im Büro und am Schreibtisch.
Bemühen Sie sich, die Unterhaltungen mit Siri (im Namen der App) flüssig, natürlich und "fühlen Sie sich einfach richtig".
Zusammenfassung
In diesem Artikel wurden die wichtigsten Konzepte behandelt, die für die Verwendung von SiriKit erforderlich sind und gezeigt werden, dass es mit den Xamarin.iOS-Apps interagieren kann, um Dienste bereitzustellen, die für den Benutzer über Siri und die Karten-App auf einem iOS-Gerät zugänglich sind.