Praca z wprowadzaniem tekstu w systemie watchOS na platformie Xamarin

Zegarek Apple Watch nie zapewnia klawiatury dla użytkowników do wprowadzania tekstu, jednak obsługuje niektóre przyjazne dla zegarka alternatywy:

  • Wybieranie ze wstępnie zdefiniowanej listy opcji tekstowych,
  • Dyktowanie Siri,
  • Wybieranie emoji,
  • Rozpoznawanie pisma ręcznego scribble na literę (wprowadzone w systemie watchOS 3).

Symulator nie obsługuje obecnie dyktowania, ale nadal można przetestować inne opcje kontrolera wprowadzania tekstu, takie jak Scribble, jak pokazano poniżej:

Testing the scribble option

Aby zaakceptować wprowadzanie tekstu w aplikacji zegarka:

  1. Utwórz tablicę ciągów wstępnie zdefiniowanych opcji.
  2. Wywołaj PresentTextInputController metodę za pomocą tablicy, czy zezwolić na emoji, czy nie, i wywołaj metodę Action po zakończeniu pracy użytkownika.
  3. W akcji ukończenia przetestuj wynik wejściowy i podejmij odpowiednie działania w aplikacji (być może ustawienie wartości tekstowej etykiety).

Poniższy fragment kodu przedstawia użytkownikowi trzy wstępnie zdefiniowane opcje:

var suggest = new string[] {"Get groceries", "Buy gas", "Post letter"};

PresentTextInputController (suggest, WatchKit.WKTextInputMode.AllowEmoji, (result) => {
    // action when the "text input" is complete
    if (result != null && result.Count > 0) {
    // this only works if result is a text response (Plain or AllowEmoji)
        enteredText = result.GetItem<NSObject>(0).ToString();
        Console.WriteLine (enteredText);
        // do something, such as myLabel.SetText(enteredText);
    }
});

Wyliczenie WKTextInputMode ma trzy wartości:

  • Zwykły
  • AllowEmoji
  • AllowAnimatedEmoji

Zwykły

Po ustawieniu trybu zwykłego użytkownik może wybrać:

  • Dyktowania
  • Scribble lub
  • ze wstępnie zdefiniowanej listy, którą dostarcza aplikacja.

Dictation, Scribble, or from a pre-defined list that the app supplies

Wynik jest zawsze zwracany jako element NSObject , który można rzutować do elementu string.

Emoji

Istnieją dwa typy emoji:

  • Zwykłe emoji Unicode
  • Animacjami

Gdy użytkownik wybierze emoji Unicode, zostanie zwrócony jako ciąg.

Jeśli w procedurze obsługi uzupełniania zostanie wybrany result animowany obraz emoji, będzie zawierać NSData obiekt zawierający emoji UIImage.

Akceptowanie tylko dyktowania

Aby przełączyć użytkownika bezpośrednio na ekran dyktowania bez wyświetlania żadnych sugestii (lub opcji Scribble):

  • przekaż pustą tablicę dla listy sugestii i
  • ustaw wartość WatchKit.WKTextInputMode.Plain.
PresentTextInputController (new string[0], WatchKit.WKTextInputMode.Plain, (result) => {
    // action when the "text input" is complete
    if (result != null && result.Count > 0) {
        dictatedText = result.GetItem<NSObject>(0).ToString();
        Console.WriteLine (dictatedText);
        // do something, such as myLabel.SetText(dictatedText);
    }
});

Gdy użytkownik mówi, na ekranie zegarka jest wyświetlany następujący ekran, który zawiera tekst zrozumiały (na przykład "To jest test"):

When the user is speaking, the watch screen displays the text as it is understood

Po naciśnięciu przycisku Gotowe tekst zostanie zwrócony.