Udostępnij za pośrednictwem


Informacje o pojęciach dotyczących zestawu SiriKit

W tym artykule opisano kluczowe pojęcia, które będą wymagane do pracy z zestawem SiriKit w aplikacji platformy Xamarin.iOS.

Nowy w systemie iOS 10 SiriKit umożliwia aplikacji Xamarin.iOS udostępnianie usług, które są dostępne dla użytkownika przy użyciu Siri i aplikacji Mapy na urządzeniu z systemem iOS. Ta funkcja jest udostępniana w co najmniej jednym rozszerzeniu aplikacji przy użyciu nowych struktur interfejsu użytkownika Intents and Intents.

Zestaw SiriKit umożliwia aplikacji systemu iOS udostępnianie usług, które są dostępne dla użytkownika przy użyciu siri i aplikacji Mapy na urządzeniu z systemem iOS przy użyciu rozszerzeń aplikacji oraz nowych struktur interfejsu użytkownika Intencje i intencje.

Siri współpracuje z koncepcją Domeny, grupami wiedzy akcji związanych z powiązanymi zadaniami. Każda interakcja aplikacji z programem Siri musi należeć do jednej ze znanych domen usług w następujący sposób:

  • Połączenia audio lub wideo.
  • Rezerwacja jazdy.
  • Zarządzanie treningami.
  • Obsługa komunikatów.
  • Wyszukiwanie zdjęć.
  • Wysyłanie lub odbieranie płatności.

Gdy użytkownik wysyła żądanie Siri z udziałem jednej z usług rozszerzenia aplikacji, SiriKit wysyła rozszerzenie obiekt Intent opisujący żądanie użytkownika wraz z wszelkimi danymi pomocniczymi. Następnie rozszerzenie aplikacji generuje odpowiedni obiekt Odpowiedzi dla danej intencji, szczegółowo opisujący sposób obsługi żądania przez rozszerzenie.

Rozszerzenia interfejsu użytkownika intencji i intencji

Zarówno Siri, jak i aplikacja Mapy współdziałają z usługami aplikacji za pośrednictwem dwóch różnych typów rozszerzeń aplikacji:

  • Rozszerzenie intencji — udostępnia Siri i Mapy z zawartością aplikacji i wykonuje zadania wymagane do spełnienia wszelkich obsługiwanych intencji.
  • Rozszerzenie interfejsu użytkownika intencji — udostępnia niestandardowy interfejs użytkownika, który będzie wyświetlany dla zawartości aplikacji w programie Siri lub Mapy.

Aplikacja musi podać rozszerzenie intents, aby obsługiwać SiriKit i jest odpowiedzialny za dostarczanie informacji, które Siri i Mapy mogą przedstawić użytkownikowi i do obsługi intencji.

Tworzenie rozszerzenia interfejsu użytkownika intencji jest opcjonalne, ponieważ Siri zwykle obsługuje całą interakcję użytkownika i ma standardowy, wbudowany interfejs użytkownika do prezentowania informacji w każdej z obsługiwanych domen. Udostępniając rozszerzenie interfejsu użytkownika Intents, aplikacja może używać struktury interfejsu użytkownika intent do prezentowania rozbudowanego, niestandardowego interfejsu użytkownika z marką aplikacji i dodatkowymi informacjami.

Siri i rola aplikacji Mapy

Żądania mówione przez użytkownika są przetwarzane w języku i semantycznie analizowane przez Siri, co zamienia te żądania w intencje umożliwiające podejmowanie działań, które rozszerzenia intencji mogą obsługiwać.

Mapy używa rozszerzeń intencji aplikacji do wyświetlania informacji w interfejsie mapy w odpowiedzi na akcje użytkownika. Takie jak żądanie pobliskich restauracji lub uzyskanie recenzji restauracji aplikacji.

Zarówno Siri, jak i Mapy zarządzać wszystkimi interakcjami użytkownika i wyświetlać wyniki przy użyciu standardowego interfejsu systemowego. Rola rozszerzeń aplikacji polega przede wszystkim na dostarczaniu wyświetlanych danych. Opcjonalnie aplikacja może udostępnić rozszerzenie interfejsu użytkownika Intents i przedstawić niestandardowy interfejs użytkownika w celu ulepszenia domyślnego interfejsu systemowego.

Interakcja z Siri Via SiriKit

W tej sekcji przedstawiono omówienie sposobu, w jaki zestaw SiriKit umożliwia użytkownikowi interakcję z aplikacją przy użyciu Siri. Na potrzeby tego przykładu będziemy używać fałszywej aplikacji MonkeyChat:

Ikona MonkeyChat

MonkeyChat przechowuje własną książkę kontaktową znajomych użytkownika, z których każda jest skojarzona z nazwą ekranu (na przykład Bobo), i umożliwia użytkownikowi wysyłanie czatów tekstowych do każdego znajomego według nazwy ekranu.

Istnieje wiele sposobów, na które użytkownik może zainicjować interakcję z aplikacją, ponieważ różne osoby mogą wysyłać to samo żądanie w wielu różnych formach.

Jeśli na przykład użytkownik chciał wysłać wiadomość do znajomego Bobo, może mieć następującą rozmowę z Siri:

Użytkownik: Hej Siri, wyślij wiadomość MonkeyChat.
Siri: Komu?
Użytkownik: Bobo.
Siri: Co chcesz powiedzieć Bobo?
Użytkownik: Wyślij więcej bananów.

Inna osoba może wysłać to samo żądanie z inną konwersacją:

Użytkownik: Wyślij wiadomość do Bobo na MonkeyChat.
Siri: Co chcesz powiedzieć Bobo?
Użytkownik: Wyślij więcej bananów.

Inny użytkownik może jeszcze krótsze żądanie:

Użytkownik: MonkeyChat Bobo wyślij więcej bananów.
Siri: Ok, wysyłanie wiadomości proszę wysłać więcej bananów do Bobo na Monkeychat.

Możesz nawet wykonać to samo żądanie w innym języku:

Użytkownik: 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.

Inny użytkownik może być bardzo pełny w rozmowie:

Użytkownik: Hej Siri, możesz zrobić mi przysługę i uruchomić aplikację MonkeyChat, aby wysłać tekst z wiadomością proszę wysłać więcej bananów.
Siri: Komu?
Użytkownik: Mój najlepszy kolega Bobo.

Ponadto istnieje wiele sposobów, na które Siri może odpowiedzieć na żądanie— niektóre w zależności od tego, jak zostało wykonane żądanie:

  • Trzymając przycisk Strona główna — Siri zapewni więcej odpowiedzi wizualnych z ograniczoną opinią słowną.
  • Przez "Hey Siri" - Siri będzie bardziej słowny i zapewni mniej odpowiedzi wizualnych.

Siri jest również dostrojony w celu spełnienia wymagań dotyczących ułatwień dostępu użytkownika i będzie wchodzić w interakcje i reagować na podstawie tych potrzeb.

Niezależnie od tego, jak jest wykonywane żądanie lub jak Siri odpowiada na żądanie, Siri obsługuje konwersację z użytkownikiem i aplikacją (za pośrednictwem jego rozszerzeń) zapewnia funkcjonalność.

Gdy użytkownik wysyła ustne żądanie Siri, są to kroki, które będą wykonywane przez Siri:

Kroki, które wykona Siri

  1. Najpierw Siri pobiera dźwięk mowy użytkownika i konwertuje go na tekst.
  2. Następnie tekst jest konwertowany na intencję— ustrukturyzowaną reprezentację żądania użytkownika.
  3. Na podstawie intencji Siri podejmie akcję w celu wykonania żądania użytkownika.
  4. Na koniec Siri przedstawi użytkownikowi odpowiedzi (zarówno wizualne, jak i słowne) na podstawie podjętej akcji.

Istnieją trzy główne sposoby, na które aplikacja może wziąć udział w konwersacji użytkownika z Siri:

Trzy główne sposoby, na które aplikacja może wziąć udział w konwersacji użytkowników z Siri

  1. Słownictwo — w ten sposób aplikacja informuje Siri o słowach, które musi wiedzieć, aby wchodzić z nim w interakcje.
  2. Logika aplikacji — są to akcje i odpowiedzi, które aplikacja podejmie w oparciu o podane intencje.
  3. Interfejs użytkownika — jest to opcjonalny, niestandardowy interfejs użytkownika, w ramach którego aplikacja może nadać odpowiedzi.

Przykład

Biorąc pod uwagę powyższe informacje, sprawdź, jak następująca konwersacja będzie współdziałać z aplikacją MonkeyChat:

Użytkownik: Hej Siri, wyślij wiadomość do Bobo na MonkeyChat.
Siri: Co chcesz powiedzieć Bobo?
Użytkownik: Wyślij więcej bananów.

Pierwszą rolą, jaką aplikacja przyjmuje w konwersacji, jest pomoc Siri w zrozumieniu mowy użytkownika:

Pomaganie Siri zrozumieć mowę użytkowników

Siri nie ma nazwy "Bobo" w swojej bazie danych, ale aplikacja robi i udostępniła te informacje Siri za pośrednictwem swojego słownictwa. Aplikacja pomaga również Siri rozpoznać, że Bobo jest odbiorcą, ponieważ określił je Siri jako kontakt.

Siri wie, że do wysłania wiadomości jest wymagana więcej niż tylko adresat, dlatego szybko sprawdzi rozszerzenie aplikacji, aby sprawdzić, czy wiadomość wymaga zawartości. Ponieważ monkeyChat robi, Siri odpowie użytkownikowi na pytanie: "Co chcesz powiedzieć Bobo?"

W powyższym przykładzie użytkownik odpowiedział: "Wyślij więcej bananów", które Siri będzie wiązać się ze ustrukturyzowaną intencją:

Siri utworzy pakiet odpowiedzi użytkownika w ustrukturyzowaną intencję

Intencja ustrukturyzowana będzie zawierać następujące informacje:

  • Domena: komunikaty
  • Intencja: sendMessage
  • Odbiorca: Bobo
  • Zawartość: Wyślij więcej bananów

Każda domena ma jako zestaw akcji know, które mogą być wykonywane w nich i na podstawie domeny i akcji, zero do wielu parametrów może być uwzględnione w intencji wysłanej do aplikacji.

Intencja jest następnie wysyłana do rozszerzenia aplikacji do przetwarzania. W wyniku przetworzenia intencji aplikacja wygeneruje intencjęResponse, która zostanie dołączona do intencji i będzie zawierać parametry opisujące działanie aplikacji z intencją.

Każda intencjaResponse będzie również zawierać kod odpowiedzi, który informuje Siri, czy aplikacja mogła ukończyć żądanie, czy nie. Niektóre domeny mają bardzo specyficzne kody odpowiedzi na błędy, które można również wysłać.

Na koniec intencjaResponse będzie zawierać wartość (na przykład użytą NSUserActivity do obsługi funkcji Hand Off). Element NSUserActivity będzie używany do uruchamiania aplikacji, jeśli odpowiedź wymaga od nich opuszczenia środowiska Siri i wprowadzenia aplikacji w celu jej ukończenia.

Siri automatycznie skompiluje odpowiedni NSUserActivity element, aby uruchomić aplikację i odebrać dane, w których użytkownik opuścił środowisko Siri. Jednak aplikacja może udostępnić własne NSUserActivity informacje dostosowane, jeśli jest to wymagane.

Gdy aplikacja przetworzyła intencję i zwróciła odpowiedź na Siri, następnie przedstawia wyniki użytkownikowi (zarówno słownie, jak i wizualnie):

Wyniki prezentowane użytkownikowi zarówno słownie, jak i wizualnie

Siri ma kilka wbudowanych interfejsów użytkownika odpowiedzi dla każdej domeny dostępnej dla aplikacji. Jednak ponieważ monkeyChat dostarczyło opcjonalne rozszerzenie interfejsu użytkownika intencji, służy do prezentowania wyników konwersacji użytkownikowi w powyższym przykładzie.

Cykl życia intencji

Istnieją trzy główne zadania, które rozszerzenie aplikacji musi wykonać podczas pracy z intencjami:

Cykl życia intencji

  1. Aplikacja musi rozpoznać każdy parametr zdarzenia. W związku z tym aplikacja będzie wywoływana wiele razy (raz na każdy parametr), a czasami wiele razy na tym samym parametrze, dopóki aplikacja i użytkownik nie zgodzi się na to, co jest żądane.
  2. Aplikacja musi potwierdzić, że może obsłużyć żądaną intencję i poinformować Siri o oczekiwanym wyniku.
  3. Na koniec aplikacja musi obsługiwać intencję i wykonywać kroki w celu osiągnięcia żądanego wyniku.

Etap rozwiązywania

Etap Rozpoznawanie pomaga Siri zrozumieć wartości podane przez użytkownika i zagwarantować, że to, co użytkownik rzeczywiście miał na myśli, będzie miało miejsce, gdy intencja zostanie przetworzona przez aplikację.

Ten etap umożliwia również aplikacji wywieranie wpływu na zachowanie Siri podczas rozmowy z użytkownikiem. W tym celu aplikacja udostępni odpowiedź na rozwiązanie. Istnieje wiele wstępnie zdefiniowanych odpowiedzi na różne typy danych, które rozumie Siri.

Najczęstszą odpowiedzią na rozwiązanie z aplikacji będzie powodzenie, co oznacza, że aplikacja dopasowała określony element danych z parametru (na przykład nazwę ekranu użytkownika) do informacji, o których wie.

Czasami aplikacja musi potwierdzić, że dane żądanie jest zgodne z prawidłowym elementem informacji, o których wie. W takich przypadkach zostanie wysłana odpowiedź PotwierdzenieWymagane , aby zadać użytkownikowi pytanie tak lub nie, takie jak "Wyślij wiadomość do Bobo the Great?"

Mogą istnieć inne przypadki, w których aplikacja będzie wymagać od użytkownika wybrania krótkiej listy opcji. W takim przypadku aplikacja udostępni odpowiedź uściślającą z listą od dwóch do dziesięciu opcji dla użytkownika do wyboru, na przykład:

Who do you want to message?

* Bobo the Great
* Bobo Jr.
* Little Bobo

Siri będzie obsługiwać wybór przez użytkownika, słownie lub przez interakcję z interfejsem użytkownika Siri, a wynik zostanie odesłany do aplikacji.

W innych przypadkach aplikacja może nie mieć wystarczającej ilości informacji, aby rozpoznać parametr lub może być zbyt wiele dopasowań, aby rozwiązać problem przy użyciu uściślania (na przykład 80 użytkowników z Bobo w nazwie). W takich przypadkach aplikacja wyśle odpowiedź NeedsMoreDetails , a Siri wyświetli monit o bardziej szczegółowe informacje.

Jeśli użytkownik nie podał wartości wymaganej do przetworzenia intencji, może wysłać odpowiedź NeedsValue, aby siri monitował użytkownika o wartość .

Jeśli aplikacja nie obsługuje wartości podanej przez użytkownika dla określonego parametru, może wysłać nieobsługiwaną odpowiedźWithReason , aby podać przyczynę, dla której wartość nie była obsługiwana. Siri wyświetli monit o zupełnie nową wartość i nada im powód, dla którego jest to wymagane.

Na koniec użyj odpowiedzi NotRequired , aby poinformować Siri, że aplikacja nie wymaga wartości dla danego parametru. Jeśli mimo to użytkownik udostępni go, zostanie on po prostu zignorowany przez Siri.

Etap potwierdzania

Etap potwierdzania ma dwa cele:

  • Aby poinformować Siri o oczekiwanym wyniku obsługi intencji, aby Siri mógł poinformować użytkownika, co się stanie.
  • Umożliwia sprawdzenie możliwości wszystkich wymaganych stanów, które aplikacja może wymagać ukończenia żądania przedstawionego przez użytkownika, na przykład posiadania wystarczającej ilości pieniędzy w banku, aby dokonać żądanej płatności.

Aplikacja udostępni odpowiedź intencji z kroku potwierdzenia, która powinna zostać wypełniona jak najwięcej informacji dostępnych przez aplikację, aby Siri mogła efektywnie komunikować się z użytkownikiem.

Na podstawie typu Domena i akcja Siri może monitować użytkownika o potwierdzenie, na przykład przed wysłaniem płatności lub dokonaniem rezerwacji przejazdu.

Etap dojścia

Etap obsługi jest najważniejszą częścią pracy z intencją, ponieważ jest to punkt, w którym aplikacja spełnia żądanie użytkownika, wykonując zadanie, które zostało poproszone o wykonanie.

Podobnie jak w przypadku etapu potwierdzania aplikacja musi podać jak najwięcej informacji o wyniku, aby Siri mógł powiązać to z użytkownikiem. Czasami te informacje będą prezentowane wizualnie lub w innym czasie Siri po prostu wypowiada je z powrotem do użytkownika.

Czasami aplikacja może wymagać dodatkowego czasu na przetworzenie danego żądania, takiego jak opóźnienia połączeń sieciowych lub jeśli osoba na żywo musi spełnić żądanie (na przykład ukończenie i wysyłka zamówienia lub kierowanie samochodu do lokalizacji użytkownika). Gdy Siri czeka na odpowiedź z powrotem z aplikacji, zostanie wyświetlony interfejs użytkownika oczekiwania dla użytkownika z informacją o tym, że aplikacja przetwarza żądanie.

W idealnym przypadku aplikacja powinna dostarczyć odpowiedź na Siri w ciągu od dwóch do trzech sekund. Jeśli aplikacja wie, że dana odpowiedź będzie trwać dłużej, musi wysłać kod odpowiedzi InProgress do Siri. Siri poinformuje następnie użytkownika, że aplikacja przetwarza żądanie w tle i będzie nadal to robić, nawet jeśli opuści środowisko Siri.

Dodawanie zestawu SiriKit do aplikacji

Dzięki zestawowi SiriKit w systemie iOS 10 firma Apple utworzyła dwa nowe punkty rozszerzenia:

  • Rozszerzenie intencji — udostępnia aplikację Siri z zawartością aplikacji i wykonuje zadania wymagane do spełnienia wszelkich obsługiwanych intencji.
  • Rozszerzenie interfejsu użytkownika intencji — udostępnia niestandardowy interfejs użytkownika, który będzie wyświetlany dla zawartości aplikacji w programie Siri.

Istnieje również interfejs API, który udostępnia wyrazy i frazy Siri, aby pomóc w rozpoznawaniu w postaci:

  • Słownictwo aplikacji — wyrazy i frazy wspólne dla każdego użytkownika aplikacji.
  • Słownictwo użytkownika — wyrazy i frazy unikatowe dla danego użytkownika aplikacji.

Rozszerzenie Intents

Rozszerzenie Intents jest odpowiedzialne za obsługę głównych interakcji między aplikacją a Siri w następujący sposób:

Rozszerzenie Intents

Rozszerzenie intencji może obsługiwać co najmniej jedną intencję. Deweloper decyduje o tym, jak chcą zaimplementować zestaw SiriKit w aplikacji. Deweloper może również dodać oddzielne rozszerzenie intencji dla każdej intencji, które muszą być obsługiwane. Oznacza to, że firma Apple żąda, aby deweloper ograniczył liczbę rozszerzeń intencji, tak aby Siri nie miał wielu procesów otwartych w aplikacji, co wymaga więcej pamięci i czasu do obsługi.

Deweloper powinien również pamiętać, że rozszerzenie intent będzie działać w tle, gdy Siri jest aktywny. Dzięki temu Siri może aktywnie prowadzić konwersację z użytkownikiem, jednocześnie komunikując się z rozszerzeniem w celu przetwarzania informacji o żądaniu.

Zagadnienia dotyczące zabezpieczeń i ochrony prywatności

Firma Apple podjęła świetne środki w celu zapewnienia bezpieczeństwa informacji prywatnych użytkownika podczas pracy z Siri i w związku z tym istnieje kilka interakcji, które wymagają zalogowania użytkownika na urządzeniu z systemem iOS. Na przykład podczas żądania przejazdu lub dokonywania płatności.

Ponadto istnieją konkretne zachowania, które aplikacja może chcieć ograniczyć do zalogowanego użytkownika na urządzeniu. W takich sytuacjach aplikacja może zażądać zachowania Ogranicz podczas blokowania . Odbywa się to za pośrednictwem ustawienia w Info.plist pliku.

Lokalna struktura uwierzytelniania jest dostępna dla rozszerzenia intencji, dzięki czemu aplikacja może poprosić użytkownika o dodatkowe informacje uwierzytelniania, nawet jeśli urządzenie jest już odblokowane.

Na koniec usługa Apple Pay jest dostępna dla rozszerzenia intencji, dzięki czemu aplikacja może zakończyć transakcję przy użyciu usługi Apple Pay, a wbudowany arkusz Apple Pay pojawi się nad interfejsem Siri.

Ponadto firma Apple chce mieć pewność, że użytkownicy będą wiedzieć, kiedy wysyłają informacje do aplikacji innej firmy i w związku z tym użytkownik musi podać konkretną nazwę aplikacji (jak określono w nazwie wyświetlanej pakietu aplikacji) podczas składania żądania.

Firma Apple zaprojektowała Siri do wykonywania naturalnych, płynnych rozmów z użytkownikiem i z tego powodu nazwa pakietu aplikacji może być używana w wielu częściach mowy, gdziekolwiek pasuje do naturalnie w żądaniu użytkownika.

Jedną z typowych rzeczy, które użytkownicy będą wykonywać, jest "pełne" imię i nazwisko aplikacji, innymi słowy, biorąc nazwę aplikacji i używając jej jako czasownik w żądaniu. Na przykład "MonkeyChat Bobo to wspaniałe banany".

Rozszerzenie interfejsu użytkownika intencji

Rozszerzenie interfejsu użytkownika Intents przedstawia możliwość przełączenia interfejsu użytkownika i znakowania aplikacji do środowiska Siri i sprawić, że użytkownicy czują się połączeni z aplikacją. Dzięki temu rozszerzeniu aplikacja może przenieść markę, wizualizację i inne informacje do transkrypcji.

Przykładowe dane wyjściowe rozszerzenia interfejsu użytkownika intencji

Rozszerzenie interfejsu użytkownika intents zawsze zwraca element UIViewController , a aplikacja może dodać dowolne elementy lubi się w kontrolerze widoku, takie jak wyświetlanie dodatkowych informacji wykraczających poza początkową odpowiedź. Interfejs użytkownika Intents może również zaktualizować użytkownika ze stanem długotrwałego zdarzenia, na przykład o ile dłużej zajmie to samochód do udostępniania przejazdów, aby dotrzeć do ich lokalizacji.

Rozszerzenie interfejsu użytkownika intencji będzie zawsze wyświetlane wraz z inną zawartością Siri, taką jak ikona aplikacji i nazwa w górnej części interfejsu użytkownika lub, na podstawie intencji, przyciski (takie jak Wyślij lub Anuluj) mogą być wyświetlane u dołu.

Istnieje kilka wystąpień, w których aplikacja może zastąpić informacje wyświetlane użytkownikowi przez Siri domyślnie, takie jak obsługa komunikatów lub mapy, w których aplikacja może zastąpić domyślne środowisko jednym dostosowanym do aplikacji.

Ważne

Chociaż istnieje możliwość dodania elementów interakcyjnych, takich jak UIButtons lub UITextFields do rozszerzenia UIViewControllerinterfejsu użytkownika intencji, są one ściśle zabronione, ponieważ interfejs użytkownika intencji w interfejsie użytkownika nieinterakcyjnym i użytkownik nie będzie mógł z nimi korzystać.

Aplikacja jest całkowicie opcjonalna, aby zapewnić rozszerzenie interfejsu użytkownika intencji, ponieważ Siri zawiera domyślny zestaw interfejsu użytkownika dla każdego typu intencji. Ponadto interfejsy interfejsu użytkownika intents są dostępne tylko dla niektórych intencji, które firma Apple uznała za przydatne dla użytkownika.

Dodawanie słownictwa SiriKit

Ostatnim elementem implementacji SiriKit jest w aplikacji zapewnienie wymaganego słownictwa. Wiele aplikacji ma unikatowe sposoby opisywania informacji dla użytkownika i unikatowych sposobów przekazywania informacji do aplikacji przez użytkownika.

W związku z tym Siri wymaga pomocy aplikacji, aby zrozumieć słowa i frazy unikatowe dla aplikacji. Niektóre z tych fraz będą częścią aplikacji, aby każdy użytkownik wiedział i zrozumiał je. Jednak inne będą unikatowe dla danego użytkownika aplikacji.

Słownictwo specyficzne dla aplikacji

Słownictwo specyficzne dla aplikacji definiuje określone słowa i frazy, które będą znane wszystkim użytkownikom aplikacji, takimi jak typy pojazdów lub nazwy treningów. Ponieważ są one częścią aplikacji, są one definiowane w pliku w AppIntentVocabulary.plist ramach głównego pakietu aplikacji. Ponadto te wyrazy i frazy powinny być zlokalizowane.

Istnieje kilka części pliku słownictwa AppIntentVocabulary.plist :

  • Przykładowe zastosowania aplikacji — udostępniają zestaw typowych przypadków użycia dla żądań, które użytkownik może utworzyć z aplikacji. Na przykład: "Rozpocznij trening z MonkeyFit".
  • Parametry — zapewniają zestaw niestandardowych typów parametrów specyficznych dla aplikacji. Na przykład nazwy treningów dla aplikacji MonkeyFit. Składają się one z następujących elementów:
    • Fraza — umożliwia aplikacji definiowanie unikatowych terminów dla aplikacji. Na przykład: typ treningu "Bananarific" dla aplikacji MonkeyFit.
    • Wymowa — daje wskazówki wymowy Siri jako proste pisowni fonetyczne dla danej frazy. Na przykład "ba nana ri fic".
    • Przykład — przykład użycia podanej frazy w aplikacji. Na przykład "Rozpocznij bananarific w MonkeyFit".

Aby uzyskać więcej informacji, zobacz Dokumentacja formatu plików słownictwa aplikacji firmy Apple.

Słownictwo specyficzne dla użytkownika

Słownictwo specyficzne dla użytkownika będzie zawierać wyrazy lub frazy unikatowe dla poszczególnych użytkowników aplikacji. Będą one udostępniane w czasie wykonywania z głównej aplikacji (a nie rozszerzeń aplikacji) jako uporządkowany zestaw terminów uporządkowany w najbardziej znaczącym prioryficie użycia dla użytkowników, z najważniejszymi terminami na początku listy.

Przyjrzyj się przykładowi przedstawionej powyżej aplikacji MonkeyChat. MonkeyChat przechowuje listę wszystkich kontaktów użytkownika, które będą wysyłane do Siri za pośrednictwem słownictwa specyficznego dla użytkownika. Przechowuje również listę 10 najnowszych kontaktów, które użytkownik ma wiadomości i zawiera zestaw ulubionych kontaktów dla każdego użytkownika. W tym przykładzie ulubione kontakty powinny znajdować się na początku naszego słownictwa specyficznego dla użytkownika, a następnie ostatnie kontakty, a następnie pozostałe kontakty użytkownika.

Następujące typy informacji są obsługiwane przez słownictwo specyficzne dla użytkownika:

  • Nazwy kontaktów.
  • Nazwy treningów.
  • Nazwy albumów fotograficznych.
  • Słowa kluczowe zdjęcia.

Jeśli aplikacja korzysta z książki adresowej systemu iOS, aplikacja nie będzie musiała podejmować żadnych działań, ponieważ te informacje są już dostępne dla Siri. Aplikacja musi podać tylko nazwy kontaktów, jeśli aplikacja ma własną unikatową bazę danych kontaktów.

Podczas projektowania słownictwa podaj tylko niezbędne wartości, które użytkownicy znają i dbają o nie. Unikaj podawania informacji, takich jak numery telefonów lub adresy e-mail.

Aplikacja musi również szybko zaktualizować Siri, gdy zmieni się słownictwo specyficzne dla użytkownika. Użytkownicy są przyzwyczajeni do żądania informacji z Siri natychmiast, który został dodany do swojego urządzenia z systemem iOS. Jeśli na przykład użytkownik doda nowy kontakt w aplikacji, wyślij te informacje do Siri zaraz po zapisaniu go przez użytkownika.

Co ważniejsze, aplikacja musi natychmiast usunąć informacje ze słownictwa Siri, ponieważ użytkownik może stać się zdenerwowany, jeśli usunął kawałek informacji, ale Siri nadal rozpoznawał je kilka godzin lub dni później.

Ważne

Aplikacja powinna usunąć wszystkie słownictwo specyficzne dla użytkownika z Siri, jeśli użytkownik zdecyduje się zresetować aplikację lub jeśli wyloguje się.

Uprawnienia zestawu SiriKit

Ostatni element SiriKit koncentruje się wokół uprawnień. Podobnie jak w przypadku korzystania z innych funkcji systemu iOS (takich jak Zdjęcia, Aparat lub Kontakty), użytkownicy muszą przyznać jawne uprawnienia aplikacji do rozmowy z Siri.

Aplikacja może podać ciąg definiujący, jakie informacje będzie dostarczać Siri, i podać powód, dla którego użytkownik powinien udzielić tego dostępu.

Firma Apple sugeruje, że aplikacja powinna zażądać od użytkownika uprawnienia do korzystania z Siri przy pierwszym uruchomieniu aplikacji po uaktualnieniu do systemu iOS 10. Dzięki temu użytkownicy wiedzą o integracji Siri i mogą wstępnie zatwierdzić użycie przed złożeniem pierwszego żądania.

SiriKit i Mapy

SiriKit jest integralną częścią systemu iOS i korzysta z większej struktury Intents dodanej do systemu iOS 10. Struktura Intents została zaprojektowana tak, aby współdzieliła wspólne i współużytkowane akcje i intencje z innymi częściami systemu.

Struktura Intents wykracza poza tylko integrację Siri i udostępnia inne funkcje, takie jak integracja kontaktów, gdzie aplikacja może stać się domyślną aplikacją telefonii lub wiadomości dla określonych kontaktów. Intencje zapewniają również głęboką integrację z zestawem CallKit, aby zapewnić użytkownikom najlepsze możliwe środowisko VOIP.

Aplikacja Mapy w systemie iOS 10 dodała funkcje, takie jak udostępnianie przejazdów, w których użytkownik może zarezerwować przejazd bezpośrednio wewnątrz interfejsu użytkownika Mapy. Zestaw SiriKit udostępnia wspólny punkt rozszerzenia z Mapy, dzięki czemu udostępnianie przejazdów (i inne) intencje mogą być współużytkowane przez Siri i Mapy.

Oznacza to, że jeśli aplikacja przyjęła rozszerzenia SiriKit, uzyska również bezpłatną integrację Mapy.

Projektowanie wspaniałego środowiska Siri

Projektowanie doskonałego środowiska użytkownika podczas integrowania aplikacji z siri różni się od projektowania doskonałego interfejsu użytkownika aplikacji. W przeciwieństwie do normalnych sytuacji, w których użytkownik wchodzi w interakcję z aplikacją bezpośrednio na ekranie, w przypadku korzystania z Siri istnieje wiele razy, gdy w ogóle nie jest widoczny żaden interfejs wizualny. Na przykład gdy użytkownik rozpoczął rozmowę z "Hey Siri".

Jak Siri pomaga deweloperowi

Podczas projektowania interakcji aplikacji z Siri aplikacja będzie kompilować interfejs konwersacyjny, co oznacza, że kontekst pochodzi z konwersacji, która ma z użytkownikiem w imieniu aplikacji.

W przypadku braku odwołania wizualnego użytkownik musi śledzić informacje prezentowane w głowie. W związku z tym Siri przedstawia najgie minimalne informacje wymagane do osiągnięcia zadania, które użytkownik chce wykonać.

Interfejs konwersacyjny jest kształtowany pytaniami i odpowiedziami zarówno użytkownika, jak i Siri podczas konwersacji. Dlatego ważne jest, aby zastanowić się, jak Siri zadaje pytania i odpowiada podczas projektowania tego interfejsu.

Skorzystaj z następującego przykładu użytkownika tworzącego komunikat, siri może odpowiedzieć na pytanie "Gotowe do wysłania?". Użytkownik może odpowiedzieć na wiele różnych sposobów, takich jak "Wyślij go", "Anuluj", a nawet coś całkowicie niezwiązanego z tym pytaniem. Bez względu na to, jak konwersacja się rozgrywa, Siri będzie obsługiwać ją dla aplikacji i wysyłać tylko odpowiednie informacje, gdy staną się dostępne.

Istnieje kilka różnych sposobów, na które użytkownik może zainicjować konwersację z Siri:

  • Wybierając urządzenie, naciśnij przycisk Strona główna. W tej sytuacji Siri przedstawi więcej interfejsów wizualnych i mniej odpowiedzi słownych.
  • Mówiąc "Hej Siri" i rozpoczynając rozmowę za pomocą funkcji Hands Free. W tej sytuacji Siri będzie mniej wizualny i bardziej słowny.
  • Korzystanie z funkcji ułatwień dostępu, takich jak aparaty słuchowe z obsługą bluetooth, w których interfejs użytkownika będzie dostosowany do potrzeb użytkownika.
  • Korzystanie z car play, gdzie użytkownik musi skupić się na jazdy, utrzymując rozproszenie uwagi do minimum.

Jak deweloper pomaga Siri

Podczas integrowania aplikacji z siri deweloper musi często testować tę integrację i upewnić się, że wysyła wiele różnych żądań, prosząc o te same informacje lub zadanie na jak najwięcej różnych sposobów.

Ponieważ żadna dwie osoby nie myślą tak samo, ważne jest, aby deweloper otrzymuje jak najwięcej różnych testerów beta, aby pomóc w dostrojeniu integracji Siri. Użytkownicy mogą prosić o informacje lub wysyłać żądania w sposób, w jaki deweloper nigdy nie, a to dostrajanie może pomóc zapewnić, że najszersza grupa użytkowników ma doskonałe doświadczenie w korzystaniu z aplikacji z Siri.

Przetestuj w różnych sytuacjach i środowiskach. Zainicjuj rozmowy z Siri na wszystkie możliwe sposoby, aby upewnić się, że rozmowy te pozostają płynne i naturalne. Przetestuj w lokalizacjach, w których użytkownik prawdopodobnie korzysta z aplikacji, na przykład w zatłoczonej siłowni.

Upewnij się, że aplikacja udostępnia wszystkie informacje potrzebne przez Siri do prawidłowego reprezentowania żądania i wyniku dla użytkownika. Jest to szczególnie prawdziwe w przypadku korzystania z Siri w sytuacji bez rąk.

Wskazówki dotyczące projektowania Siri

Zawsze pamiętaj, że Siri prowadzi konwersację z użytkownikiem w imieniu aplikacji. Deweloper chce nie mieć pewności, że ta rozmowa pozostaje tak płynna i naturalna, jak to możliwe.

Podobnie jak w przypadku każdej ważnej rozmowy, deweloper musi zapewnić następujące kwestie:

  • Że aplikacja jest przygotowana do konwersacji.
  • Aplikacja nasłuchuje dokładnie tego, co użytkownik próbuje wykonać.
  • Aplikacja zadaje odpowiednie pytania w odpowiednim czasie.
  • Aplikacja odpowiada na żądanie przy użyciu informacji, których szuka użytkownik.

Przygotowanie do konwersacji

Pierwszą rzeczą, którą należy pamiętać, jest to, że użytkownicy aplikacji nie będą dokładnie tacy jak deweloper. Mogą pochodzić z różnych środowisk, mówić w różnych językach lub mieć specjalne potrzeby podczas pracy z aplikacją.

Ponadto, ponieważ deweloper zaprojektował i skompilował aplikację, ma głęboką, intymną wiedzę zarówno o aplikacji, jak i jej wewnętrznej pracy i funkcjach, których typowy użytkownik nie będzie miał. Dlatego deweloper może poprosić Siri inaczej niż zwykły użytkownik.

Dlatego ważne jest, aby mieć jak najwięcej różnych osób wchodzić w interakcję z aplikacją za pośrednictwem Siri. Użytkownicy mogą wysyłać żądania aplikacji za pośrednictwem Siri, że deweloper nigdy nie myślał lub w sposób, w jaki deweloper nie rozważył.

Upewnij się, że aplikacja jest dobrym odbiornikiem

Deweloper musi upewnić się, że aplikacja jest dobrym odbiornikiem i otrzymuje szczegółowe informacje o konwersacji, które spełniają oczekiwania użytkownika. Możliwe jest jednak również, że mogą nie podać wszystkich informacji wymaganych przez aplikację do osiągnięcia żądanego zadania.

Istnieje kilka sposobów obsługi tej sytuacji przez aplikację:

  • Wybierz dobrą wartość domyślną dla brakującej wartości — na przykład aplikacja do udostępniania przejazdu może domyślnie ustawić bieżącą lokalizację użytkownika, jeśli nie określi miejsca, z którego ma zostać odebrana.
  • Utwórz wykształcone odgadnięcie — korzystając z określonych informacji zebranych przez aplikację dla użytkownika, aplikacja może być w stanie utworzyć i wymyślić brakujące informacje, takie jak wypełnienie brakującego numeru telefonu komórkowego z informacji kontaktowych użytkownika. Należy jednak zachować ostrożność, aby uniknąć złych niespodzianek, takich jak wybór najdroższej opcji itp.
  • Monituj o więcej informacji — aplikacja może monitować użytkownika o brakującą wartość. Jednak kluczem jest utrzymanie prostych rozmów i do tego stopnia. Użytkownicy szybko staną się sfrustrowani, jeśli muszą odpowiedzieć na kilka pytań, aby osiągnąć swoje żądanie.
  • Obsługa dezinformacji z pewnością — użytkownik może podać wartość, której aplikacja nie oczekiwała lub której nie może obsłużyć w danym kontekście. Upewnij się, że aplikacja odnosi tę sytuację do użytkownika w sposób, który ułatwia ich poprawianie.

Gdy aplikacja zostanie wyświetlona z pojedynczą wartością, która jest kwestionowana, preferowanym sposobem obsługi tej funkcji jest prośba o potwierdzenie przez Siri. Na przykład "Czy oznaczałeś Bobo Wielkiego?", na co mogą odpowiedzieć za pomocą prostej odpowiedzi tak lub bez odpowiedzi.

Jeśli istnieje sytuacja, w której kilka możliwych opcji może być poprawnych dla pojedynczej wartości, uściślanie jest preferowaną metodą obsługi. W takiej sytuacji Siri może monitować użytkownika o maksymalnie dziesięć możliwych opcji do wyboru. Na przykład:

Who do you want to send the message to?

* Bobo the Great!
* Bobo Jr.
* Little Bobo

Jeśli nadal masz pytanie, monituj użytkownika o podanie zupełnie nowej, bardziej szczegółowej odpowiedzi dla danej wartości.

Żądanie końcowego potwierdzenia

Zanim aplikacja faktycznie wykona zadanie realizacji żądania użytkownika, Siri sprawdzi rozszerzenie aplikacji, aby upewnić się, że wszystko jest na miejscu. Czy na przykład użytkownik ma wystarczająco dużo pieniędzy na koncie, aby dokonać żądanej płatności?

Ponadto aplikacja musi mieć pewność, że udostępnia wszystkie informacje możliwe dla Siri, aby mogła przedstawić ją użytkownikowi i potwierdzić, że zadanie, które ma zostać wykonane, spełnia ich oczekiwania.

Po potwierdzeniu żądania przez użytkownika i jego wykonaniu aplikacja musi ponownie upewnić się, że wszystkie wyniki zostały dostarczone z powrotem do Siri, aby mógł powiązać je z użytkownikiem.

Odpowiadanie na żądanie

Siri ma kilka wbudowanych interfejsów użytkownika dla każdej z domen i akcji, o których wie. Jednak w razie potrzeby aplikacja może udostępnić niestandardowe rozszerzenie interfejsu użytkownika intencji, aby wzbogacić środowisko użytkownika przez przedstawienie znakowania i interfejsu użytkownika aplikacji lub więcej informacji niż było obecne w żądaniu.

Oznacza to, że przy projektowaniu interfejsów niestandardowych dla Siri należy używać powściągliwości. Zazwyczaj użytkownik chce jak najszybciej wykonać określone zadanie i nie chce być przeciążony niepotrzebnymi informacjami.

Należy również zadbać o to, aby niestandardowy interfejs użytkownika wyglądał i reagował poprawnie na wszystkich różnych urządzeniach z systemem iOS i orientacjach, które użytkownik mógł mieć lub używać urządzenia.

W razie potrzeby użyj interfejsu API SiriKit, aby ukryć wszelkie nadmiarowe informacje już obecne w domyślnym interfejsie użytkownika Siri. Jednak upewnij się, że aplikacja nadal dostarcza informacje Siri, aby mogła prezentować ją słownie w sytuacjach bez rąk.

Mogą wystąpić sytuacje, w których Siri uruchomi aplikację w celu spełnienia żądania użytkownika, takich jak prezentowanie zdjęć, których zażądał użytkownik. W takich sytuacjach nie dziwić użytkownika. Wyświetl oczekiwane informacje bez konieczności wykonania kroków pośrednich lub dalszej interakcji. Nigdy nie wyświetlaj informacji ani nie wykonuj zadania, których użytkownik nie oczekuje.

Polerowanie projektu

Istnieje kilka kroków, które firma Apple sugeruje, aby ulepszyć projekt interfejsów konwersacyjnych. Po pierwsze, dostarcza jasne, zwięzłe słownictwo i przykłady przypadków użycia dla Siri.

Jednym ze sposobów odnajdywania aplikacji przez użytkownika jest zainicjowanie rozmowy z Siri i pytanie: "Co możesz zrobić?" Siri pokaże kilka różnych czynności, które może wykonać, w tym aplikację dewelopera i przykładowe przypadki użycia bohatera udostępnione za pośrednictwem jego plist pliku.

Jak napisać dobre przykłady przypadków użycia:

  • Upewnij się, że przykłady zawierają nazwę aplikacji.
  • Zachowaj krótki przykład i do punktu.
  • Podaj wiele przykładów dla każdej z intencji, które obsługuje aplikacja.
  • Określanie priorytetów zarówno intencji, jak i przykładów w nich na podstawie najbardziej typowych przypadków użycia aplikacji.
  • Upewnij się, że aplikacja udostępnia zlokalizowane przykłady.
  • Upewnij się, że każdy przykład działa zgodnie z oczekiwaniami w aplikacji.
  • Unikaj zwracania się do Siri w przykładach, więc nie dołączaj tekstu takiego jak "Hey Siri..."
  • Unikaj niepotrzebnych przyjemnych, takich jak "proszę" lub "dziękuję".

Pośmiń odpowiedni czas, aby zbadać i poeksperymentować, w jaki sposób aplikacja może kształtować konwersację, którą siri ma z użytkownikiem w jego imieniu. Pamiętaj, aby rozmawiać z typowymi użytkownikami w całym procesie, ponieważ ich interakcje z aplikacją i oczekiwaniami mogą ulec zmianie w miarę upływu czasu.

Zawsze pamiętaj, aby przetestować aplikację w różnych sytuacjach i wszystkich różnych metodach wywoływania rozmowy z Siri. Przetestuj w rzeczywistych lokalizacjach, w których użytkownik może korzystać z aplikacji, z dala od biura i biurka.

Staraj się prowadzić rozmowy z Siri (w imieniu aplikacji) być płynne, naturalne i "czuć się dobrze".

Podsumowanie

W tym artykule opisano kluczowe pojęcia wymagane do korzystania z zestawu SiriKit i pokazano, że może wchodzić w interakcje z aplikacjami platformy Xamarin.iOS w celu dostarczania usług, które są dostępne dla użytkownika przy użyciu Siri i aplikacji Mapy na urządzeniu z systemem iOS.