Bagikan melalui


Bekerja dengan WatchOS Text Input di Xamarin

Apple Watch tidak menyediakan keyboard bagi pengguna untuk memasukkan teks, namun mendukung beberapa alternatif yang mudah ditonton:

  • Memilih dari daftar opsi teks yang telah ditentukan sebelumnya,
  • Dikte Siri,
  • Memilih emoji,
  • Coretan pengenalan tulisan tangan huruf demi huruf (diperkenalkan di watchOS 3).

Simulator saat ini tidak mendukung dikte tetapi Anda masih dapat menguji opsi lain pengontrol input teks, seperti Scribble, seperti yang ditunjukkan di sini:

Testing the scribble option

Untuk menerima input teks di aplikasi tonton:

  1. Buat array string dari opsi yang telah ditentukan sebelumnya.
  2. Panggil PresentTextInputController dengan array, apakah akan mengizinkan emoji atau tidak, dan Action yang dipanggil ketika pengguna selesai.
  3. Dalam tindakan penyelesaian, uji hasil input dan ambil tindakan yang sesuai di aplikasi (mungkin mengatur nilai teks label).

Cuplikan kode berikut menyajikan tiga opsi yang telah ditentukan sebelumnya kepada pengguna:

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

Enumerasi WKTextInputMode memiliki tiga nilai:

  • Biasa
  • AllowEmoji
  • AllowAnimatedEmoji

Biasa

Saat mode biasa diatur, pengguna dapat memilih:

  • Dikte
  • Coretan, atau
  • dari daftar yang telah ditentukan sebelumnya yang disediakan aplikasi.

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

Hasilnya selalu dikembalikan sebagai NSObject yang dapat ditransmisikan ke string.

Emoji

Ada dua jenis emoji:

  • Emoji Unicode reguler
  • Gambar animasi

Saat pengguna memilih emoji Unicode, emoji dikembalikan sebagai string.

Jika emoji gambar animasi dipilih result , di handler penyelesaian akan berisi NSData objek yang berisi emoji UIImage.

Menerima Dikte Saja

Untuk membawa pengguna langsung ke layar dikte tanpa menunjukkan saran apa pun (atau opsi Coretan):

  • meneruskan array kosong untuk daftar saran, dan
  • atur 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);
    }
});

Saat pengguna berbicara, layar jam tangan menampilkan layar berikut yang menyertakan teks seperti yang dipahami (misalnya "Ini adalah pengujian"):

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

Setelah mereka menekan tombol Selesai , teks akan dikembalikan.