chrome.input.ime

Deskripsi

Gunakan chrome.input.ime API untuk menerapkan IME kustom untuk ChromeOS. Hal ini memungkinkan ekstensi Anda menangani penekanan tombol, menyetel komposisi, dan mengelola jendela kandidat.

Izin

input

Anda harus mendeklarasikan izin "input" di manifes ekstensi untuk menggunakan input.ime API. Contoh:

{
  "name": "My extension",
  ...
  "permissions": [
    "input"
  ],
  ...
}

Ketersediaan

Khusus ChromeOS

Contoh

Kode berikut membuat IME yang mengonversi huruf yang diketik menjadi huruf besar.

var context_id = -1;

chrome.input.ime.onFocus.addListener(function(context) {
  context_id = context.contextID;
});

chrome.input.ime.onKeyEvent.addListener(
  function(engineID, keyData) {
    if (keyData.type == "keydown" && keyData.key.match(/^[a-z]$/)) {
      chrome.input.ime.commitText({"contextID": context_id,
                                    "text": keyData.key.toUpperCase()});
      return true;
    } else {
      return false;
    }
  }
);

Jenis

AssistiveWindowButton

Chrome 85+

ID tombol di jendela pendukung.

Enum

"urungkan"

"addToDictionary"

AssistiveWindowProperties

Chrome 85+

Properti jendela pendukung.

Properti

  • announceString

    string opsional

    String untuk diumumkan oleh ChromeVox.

  • jenis

    "urungkan"

  • terlihat

    boolean

    Menetapkan nilai benar (true) untuk menampilkan AssistiveWindow, menetapkan nilai salah (false) untuk menyembunyikan.

AssistiveWindowType

Chrome 85+

Jenis jendela pendukung.

Nilai

"urungkan"

AutoCapitalizeType

Chrome 69+

Jenis huruf kapital otomatis pada kolom teks.

Enum

"karakter"

"kata"

"kalimat"

InputContext

Mendeskripsikan Konteks input

Properti

  • autoCapitalize
    Chrome 69+

    Jenis huruf kapital otomatis pada kolom teks.

  • autoComplete

    boolean

    Apakah kolom teks menginginkan pelengkapan otomatis.

  • autoCorrect

    boolean

    Apakah kolom teks menginginkan koreksi otomatis.

  • contextID

    angka

    Digunakan untuk menentukan target operasi kolom teks. ID ini menjadi tidak valid segera setelah onBlur dipanggil.

  • shouldDoLearning

    boolean

    Chrome 68+

    Apakah teks yang dimasukkan ke dalam kolom teks harus digunakan untuk meningkatkan saran pengetikan bagi pengguna.

  • spellCheck

    boolean

    Apakah kolom teks menginginkan pemeriksaan ejaan.

  • Jenis nilai yang diedit oleh kolom teks ini, (Teks, Angka, URL, dll.)

InputContextType

Chrome 44+

Jenis nilai yang diedit oleh kolom teks ini, (Teks, Angka, URL, dll.)

Enum

"text"

"search"

"tel"

"url"

"email"

"number"

"password"

"null"

KeyboardEvent

Lihat http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent

Properti

  • altKey

    boolean opsional

    Apakah tombol ALT ditekan atau tidak.

  • altgrKey

    boolean opsional

    Chrome 79+

    Apakah tombol ALTGR ditekan atau tidak.

  • capsLock

    boolean opsional

    Apakah CAPS_LOCK diaktifkan atau tidak.

  • kode

    string

    Nilai tombol fisik yang ditekan. Nilai tidak terpengaruh oleh tata letak keyboard saat ini atau status pengubah.

  • ctrlKey

    boolean opsional

    Apakah tombol CTRL ditekan atau tidak.

  • extensionId

    string opsional

    ID ekstensi pengirim keyevent ini.

  • kunci

    string

    Nilai tombol yang ditekan

  • keyCode

    nomor opsional

    keyCode HTML yang tidak digunakan lagi, yang merupakan kode numerik yang bergantung pada sistem dan implementasi yang menandakan ID yang tidak dimodifikasi yang terkait dengan tombol yang ditekan.

  • requestId

    string opsional

    (Tidak digunakan lagi) ID permintaan. Gunakan parameter requestId dari peristiwa onKeyEvent sebagai gantinya.

  • shiftKey

    boolean opsional

    Apakah tombol SHIFT ditekan atau tidak.

  • Salah satu dari keyup atau keydown.

KeyboardEventType

Chrome 44+

Enum

"keyup"

"keydown"

MenuItem

Item menu yang digunakan oleh metode input untuk berinteraksi dengan pengguna dari menu bahasa.

Properti

  • dicentang

    boolean opsional

    Menunjukkan bahwa item ini harus digambar dengan tanda centang.

  • diaktifkan

    boolean opsional

    Menunjukkan bahwa item ini diaktifkan.

  • id

    string

    String yang akan diteruskan ke callback yang mereferensikan MenuItem ini.

  • label

    string opsional

    Teks yang ditampilkan di menu untuk item ini.

  • gaya

    MenuItemStyle opsional

    Jenis item menu.

  • terlihat

    boolean opsional

    Menunjukkan bahwa item ini terlihat.

MenuItemStyle

Chrome 44+

Jenis item menu. Tombol pilihan di antara pemisah dianggap dikelompokkan.

Enum

"periksa"

"radio"

"separator"

MenuParameters

Chrome 88+

Properti

  • engineID

    string

    ID mesin yang akan digunakan.

  • item

    MenuItem yang akan ditambahkan atau diperbarui. Item akan ditambahkan sesuai urutannya dalam array.

MouseButton

Chrome 44+

Tombol mouse mana yang diklik.

Enum

"kiri"

"middle"

"kanan"

ScreenType

Chrome 44+

Jenis layar tempat IME diaktifkan.

Enum

"normal"

"login"

"lock"

"secondary-login"

UnderlineStyle

Chrome 44+

Jenis garis bawah untuk mengubah segmen ini.

Enum

"underline"

"doubleUnderline"

"noUnderline"

WindowPosition

Chrome 44+

Tempat menampilkan jendela kandidat. Jika disetel ke 'kursor', jendela akan mengikuti kursor. Jika disetel ke 'komposisi', jendela akan dikunci ke awal komposisi.

Enum

"kursor"

"komposisi"

Metode

clearComposition()

chrome.input.ime.clearComposition(
  parameters: object,
)
: Promise<boolean>

Hapus komposisi saat ini. Jika ekstensi ini tidak memiliki IME aktif, hal ini akan gagal.

Parameter

  • parameter

    objek

    • contextID

      angka

      ID konteks tempat komposisi akan dihapus

Hasil

  • Promise<boolean>

    Chrome 111+

commitText()

chrome.input.ime.commitText(
  parameters: object,
)
: Promise<boolean>

Menerapkan teks yang diberikan ke input saat ini.

Parameter

  • parameter

    objek

    • contextID

      angka

      ID konteks tempat teks akan dilakukan

    • teks

      string

      Teks yang akan di-commit

Hasil

  • Promise<boolean>

    Chrome 111+

deleteSurroundingText()

chrome.input.ime.deleteSurroundingText(
  parameters: object,
)
: Promise<void>

Menghapus teks di sekitar tanda sisipan.

Parameter

  • parameter

    objek

    • contextID

      angka

      ID konteks tempat teks di sekitarnya akan dihapus.

    • engineID

      string

      ID mesin yang menerima peristiwa.

    • panjang

      angka

      Jumlah karakter yang akan dihapus

    • offset

      angka

      Offset dari posisi kursor tempat penghapusan akan dimulai. Nilai ini bisa negatif.

Hasil

  • Promise<void>

    Chrome 111+

hideInputView()

chrome.input.ime.hideInputView(): void

Menyembunyikan jendela tampilan input, yang dimunculkan secara otomatis oleh sistem. Jika jendela tampilan input sudah disembunyikan, fungsi ini tidak akan melakukan apa pun.

keyEventHandled()

chrome.input.ime.keyEventHandled(
  requestId: string,
  response: boolean,
)
: void

Menunjukkan bahwa peristiwa tombol yang diterima oleh onKeyEvent ditangani. Metode ini hanya boleh dipanggil jika pemroses onKeyEvent bersifat asinkron.

Parameter

  • requestId

    string

    ID permintaan peristiwa yang ditangani. ID ini harus berasal dari keyEvent.requestId

  • respons

    boolean

    Benar jika penekanan tombol ditangani, salah jika tidak

sendKeyEvents()

chrome.input.ime.sendKeyEvents(
  parameters: object,
)
: Promise<void>

Mengirim peristiwa utama. Fungsi ini diharapkan digunakan oleh keyboard virtual. Saat tombol di keyboard virtual ditekan oleh pengguna, fungsi ini digunakan untuk menyebarkan peristiwa tersebut ke sistem.

Parameter

  • parameter

    objek

    • contextID

      angka

      ID konteks tempat peristiwa utama akan dikirim, atau nol untuk mengirim peristiwa utama ke kolom non-input.

    • keyData

      Data tentang peristiwa utama.

Hasil

  • Promise<void>

    Chrome 111+

setAssistiveWindowButtonHighlighted()

Chrome 86+
chrome.input.ime.setAssistiveWindowButtonHighlighted(
  parameters: object,
)
: Promise<void>

Menyoroti/Membatalkan sorotan tombol di jendela pendukung.

Parameter

  • parameter

    objek

    • announceString

      string opsional

      Teks yang akan dibacakan oleh pembaca layar.

    • ID tombol

    • contextID

      angka

      ID konteks yang memiliki jendela pendukung.

    • disorot

      boolean

      Apakah tombol harus ditandai.

    • windowType

      "urungkan"

      Jenis jendela tempat tombol berada.

Hasil

  • Promise<void>

    Chrome 111+

setAssistiveWindowProperties()

Chrome 85+
chrome.input.ime.setAssistiveWindowProperties(
  parameters: object,
)
: Promise<boolean>

Menampilkan/Menyembunyikan jendela pendukung dengan properti tertentu.

Parameter

  • parameter

    objek

Hasil

  • Promise<boolean>

    Chrome 111+

setCandidates()

chrome.input.ime.setCandidates(
  parameters: object,
)
: Promise<boolean>

Menetapkan daftar kandidat saat ini. Gagal jika ekstensi ini tidak memiliki IME aktif

Parameter

  • parameter

    objek

    • kandidat

      object[]

      Daftar kandidat yang akan ditampilkan di jendela kandidat

      • annotation

        string opsional

        Teks tambahan yang mendeskripsikan kandidat

      • kandidat

        string

        Kandidat

      • id

        angka

        ID kandidat

      • label

        string opsional

        String pendek yang ditampilkan di samping kandidat, sering kali berupa tombol pintasan atau indeks

      • parentId

        nomor opsional

        ID untuk menambahkan kandidat ini

      • penggunaan

        objek opsional

        Penggunaan atau deskripsi mendetail kata.

        • body

          string

          String isi deskripsi detail.

        • judul

          string

          String judul deskripsi detail.

    • contextID

      angka

      ID konteks yang memiliki jendela kandidat.

Hasil

  • Promise<boolean>

    Chrome 111+

setCandidateWindowProperties()

chrome.input.ime.setCandidateWindowProperties(
  parameters: object,
)
: Promise<boolean>

Menetapkan properti jendela kandidat. Tindakan ini akan gagal jika ekstensi tidak memiliki IME aktif

Parameter

  • parameter

    objek

    • engineID

      string

      ID mesin untuk menetapkan properti.

    • properti

      objek

      • auxiliaryText

        string opsional

        Teks yang ditampilkan di bagian bawah jendela kandidat.

      • auxiliaryTextVisible

        boolean opsional

        Benar untuk menampilkan teks tambahan, salah untuk menyembunyikannya.

      • currentCandidateIndex

        nomor opsional

        Chrome 84+

        Indeks kandidat yang saat ini dipilih dari total kandidat.

      • cursorVisible

        boolean opsional

        Benar untuk menampilkan kursor, salah untuk menyembunyikannya.

      • pageSize

        nomor opsional

        Jumlah kandidat yang ditampilkan per halaman.

      • totalCandidates

        nomor opsional

        Chrome 84+

        Jumlah total kandidat untuk jendela kandidat.

      • vertikal

        boolean opsional

        Benar jika jendela kandidat harus dirender vertikal, salah jika harus dirender horizontal.

      • terlihat

        boolean opsional

        Benar untuk menampilkan jendela Kandidat, salah untuk menyembunyikannya.

      • windowPosition

        WindowPosition opsional

        Tempat menampilkan jendela kandidat.

Hasil

  • Promise<boolean>

    Chrome 111+

setComposition()

chrome.input.ime.setComposition(
  parameters: object,
)
: Promise<boolean>

Menetapkan komposisi saat ini. Jika ekstensi ini tidak memiliki IME aktif, hal ini akan gagal.

Parameter

  • parameter

    objek

    • contextID

      angka

      ID konteks tempat teks komposisi akan ditetapkan

    • cursor

      angka

      Posisi kursor dalam teks.

    • serupa

      object[] opsional

      Daftar segmen dan jenis terkaitnya.

      • end

        angka

        Indeks karakter untuk mengakhiri segmen ini setelahnya.

      • mulai

        angka

        Indeks karakter untuk memulai segmen ini

      • Jenis garis bawah untuk mengubah segmen ini.

    • selectionEnd

      nomor opsional

      Posisi dalam teks tempat pilihan berakhir.

    • selectionStart

      nomor opsional

      Posisi dalam teks tempat pemilihan dimulai.

    • teks

      string

      Teks yang akan disetel

Hasil

  • Promise<boolean>

    Chrome 111+

setCursorPosition()

chrome.input.ime.setCursorPosition(
  parameters: object,
)
: Promise<boolean>

Menetapkan posisi kursor di jendela kandidat. Ini adalah operasi no-op jika ekstensi ini tidak memiliki IME aktif.

Parameter

  • parameter

    objek

    • candidateID

      angka

      ID kandidat yang akan dipilih.

    • contextID

      angka

      ID konteks yang memiliki jendela kandidat.

Hasil

  • Promise<boolean>

    Chrome 111+

setMenuItems()

chrome.input.ime.setMenuItems(
  parameters: MenuParameters,
)
: Promise<void>

Menambahkan item menu yang diberikan ke menu bahasa saat IME ini aktif.

Parameter

Hasil

  • Promise<void>

    Chrome 111+

updateMenuItems()

chrome.input.ime.updateMenuItems(
  parameters: MenuParameters,
)
: Promise<void>

Memperbarui status MenuItems yang ditentukan

Parameter

Hasil

  • Promise<void>

    Chrome 111+

Acara

onActivate

chrome.input.ime.onActivate.addListener(
  callback: function,
)

Peristiwa ini dikirim saat IME diaktifkan. Sinyal ini menunjukkan bahwa IME akan menerima peristiwa onKeyPress.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (engineID: string, screen: ScreenType) => void

onAssistiveWindowButtonClicked

Chrome 85+
chrome.input.ime.onAssistiveWindowButtonClicked.addListener(
  callback: function,
)

Peristiwa ini dikirim saat tombol di jendela pendukung diklik.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (details: object) => void

onBlur

chrome.input.ime.onBlur.addListener(
  callback: function,
)

Peristiwa ini dikirim saat fokus keluar dari kotak teks. Pesan ini dikirim ke semua ekstensi yang memproses peristiwa ini, dan diaktifkan oleh pengguna.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (contextID: number) => void

    • contextID

      angka

onCandidateClicked

chrome.input.ime.onCandidateClicked.addListener(
  callback: function,
)

Peristiwa ini dikirim jika ekstensi ini memiliki IME aktif.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (engineID: string, candidateID: number, button: MouseButton) => void

onDeactivated

chrome.input.ime.onDeactivated.addListener(
  callback: function,
)

Peristiwa ini dikirim saat IME dinonaktifkan. Sinyal ini menunjukkan bahwa IME tidak akan lagi menerima peristiwa onKeyPress.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (engineID: string) => void

    • engineID

      string

onFocus

chrome.input.ime.onFocus.addListener(
  callback: function,
)

Peristiwa ini dikirim saat fokus memasuki kotak teks. Pesan ini dikirim ke semua ekstensi yang memproses peristiwa ini, dan diaktifkan oleh pengguna.

Parameter

onInputContextUpdate

chrome.input.ime.onInputContextUpdate.addListener(
  callback: function,
)

Peristiwa ini dikirim saat properti InputContext saat ini berubah, seperti jenisnya. Pesan ini dikirim ke semua ekstensi yang memproses peristiwa ini, dan diaktifkan oleh pengguna.

Parameter

onKeyEvent

chrome.input.ime.onKeyEvent.addListener(
  callback: function,
)

Diaktifkan saat peristiwa tombol dikirim dari sistem operasi. Peristiwa akan dikirim ke ekstensi jika ekstensi ini memiliki IME aktif. Fungsi pemroses harus menampilkan nilai benar (true) jika peristiwa ditangani, dan nilai salah (false) jika tidak. Jika peristiwa akan dievaluasi secara asinkron, fungsi ini harus menampilkan nilai yang tidak ditentukan dan IME harus memanggil keyEventHandled() nanti dengan hasilnya.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (engineID: string, keyData: KeyboardEvent, requestId: string) => boolean | undefined

    • return

      boolean | undefined

onMenuItemActivated

chrome.input.ime.onMenuItemActivated.addListener(
  callback: function,
)

Dipanggil saat pengguna memilih item menu

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (engineID: string, name: string) => void

    • engineID

      string

    • name

      string

onReset

chrome.input.ime.onReset.addListener(
  callback: function,
)

Peristiwa ini dikirim saat Chrome mengakhiri sesi input teks yang sedang berlangsung.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (engineID: string) => void

    • engineID

      string

onSurroundingTextChanged

chrome.input.ime.onSurroundingTextChanged.addListener(
  callback: function,
)

Dipanggil saat string yang dapat diedit di sekitar tanda sisipan diubah atau saat posisi tanda sisipan dipindahkan. Panjang teks dibatasi hingga 100 karakter untuk setiap arah bolak-balik.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (engineID: string, surroundingInfo: object) => void

    • engineID

      string

    • surroundingInfo

      objek

      • anchor

        angka

        Posisi awal pilihan. Nilai ini menunjukkan posisi kursor jika tidak ada pilihan.

      • fokus

        angka

        Posisi akhir pilihan. Nilai ini menunjukkan posisi kursor jika tidak ada pilihan.

      • offset

        angka

        Chrome 46+

        Posisi offset text. Karena text hanya menyertakan subset teks di sekitar kursor, offset menunjukkan posisi absolut karakter pertama text.

      • teks

        string

        Teks di sekitar kursor. Ini hanya sebagian kecil dari semua teks di kolom input.