Práce s watchOS textovým vstupem v Xamarin

Apple Watch neposkytuje uživatelům vstupní text, ale podporuje některé alternativy v rámci kukátka:

  • Výběr z předem definovaného seznamu možností textu
  • Diktování Siri,
  • Výběr emoji,
  • Zaznamená rozpoznávání rukopisu po písmenech (představené v watchOS 3).

Simulátor aktuálně nepodporuje diktování, ale stále můžete testovat jiné možnosti, jako je například Klikyháky, jak je znázorněno zde:

Testování možnosti Klikyháky

Příjem textového vstupu v aplikaci pro kukátko:

  1. Vytvoří pole řetězců předdefinovaných možností.
  2. Zavolejte PresentTextInputController s polem, zda má být povolena emoji nebo ne, a Action který je volán po dokončení uživatele.
  3. V akci dokončení otestujte výsledek vstupu a v aplikaci proveďte příslušné akce (případně nastavte textovou hodnotu popisku).

Následující fragment kódu představuje tři předdefinované možnosti pro uživatele:

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);
    }
});

WKTextInputModeVýčet má tři hodnoty:

  • Podobě
  • AllowEmoji
  • AllowAnimatedEmoji

Podobě

Když je nastaven režim jednoduchého režimu, může uživatel zvolit:

  • Diktování
  • Klikyháky nebo
  • z předem definovaného seznamu, který aplikace poskytuje.

Diktování, Klikyháky nebo z předem definovaného seznamu, který aplikace poskytuje

Výsledek je vždy vrácen jako objekt NSObject , který lze přetypovat na string .

Emoji

Existují dva typy Emoji:

  • Normální emoji v kódování Unicode
  • Animované obrázky

Když uživatel zvolí emoji v kódování Unicode, vrátí se jako řetězec.

Pokud je vybraná animovaná image Emoji, result v obslužné rutině dokončení bude obsahovat NSData objekt, který obsahuje Emoji UIImage .

Přijetí jenom pro diktování

Převzetí uživatele přímo na obrazovku pro diktování bez zobrazení jakýchkoli návrhů (nebo možnosti Klikyháky):

  • předejte prázdné pole pro seznam návrhů a
  • nastavit 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);
    }
});

Když uživatel mluví, obrazovka kukátka zobrazí následující obrazovku, která zahrnuje text tak, jak je srozumitelná (například "Toto je test"):

Když uživatel mluví, obrazovka kukátka zobrazí text tak, jak je srozumitelný.

Po stisknutí tlačítka Hotovo se text vrátí.