browser.input.ime

Deskripsi

Gunakan chrome.input.ime API untuk menerapkan IME kustom untuk ChromeOS. Hal ini memungkinkan ekstensi Anda menangani penekanan tombol, menetapkan 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;

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

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

Jenis

AssistiveWindowButton

Chrome 85+ browser.* sejak Chrome 148

ID tombol di jendela bantuan.

Enum

"undo"

"addToDictionary"

AssistiveWindowProperties

Chrome 85+ browser.* sejak Chrome 148

Properti jendela bantuan.

Properti

  • announceString

    string opsional

    String untuk diucapkan ChromeVox.

  • jenis

    "undo"

  • terlihat

    boolean

    Menetapkan true untuk menampilkan AssistiveWindow, menetapkan false untuk menyembunyikan.

AssistiveWindowType

Chrome 85+ browser.* sejak Chrome 148

Jenis jendela bantuan.

Nilai

"undo"

AutoCapitalizeType

Chrome 69+ browser.* sejak Chrome 148

Jenis kapitalisasi otomatis kolom teks.

Enum

"characters"

"kata"

"sentences"

InputContext

Menjelaskan Konteks input

Properti

  • autoCapitalize
    Chrome 69+ browser.* sejak Chrome 148

    Jenis kapitalisasi otomatis kolom teks.

  • autoComplete

    boolean

    Apakah kolom teks memerlukan pelengkapan otomatis.

  • autoCorrect

    boolean

    Apakah kolom teks memerlukan koreksi otomatis.

  • contextID

    angka

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

  • shouldDoLearning

    boolean

    Chrome 68+ browser.* sejak Chrome 148

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

  • spellCheck

    boolean

    Apakah kolom teks memerlukan pemeriksaan ejaan.

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

InputContextType

Chrome 44+ browser.* sejak Chrome 148

Jenis nilai yang diedit 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+ browser.* sejak Chrome 148

    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 atau status pengubah saat ini.

  • ctrlKey

    boolean opsional

    Apakah tombol CTRL ditekan atau tidak.

  • extensionId

    string opsional

    ID ekstensi pengirim keyevent ini.

  • kunci

    string

    Nilai tombol yang ditekan

  • keyCode

    number opsional

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

  • requestId

    string opsional

    (Tidak digunakan lagi) ID permintaan. Sebagai gantinya, gunakan parameter requestId dari peristiwa onKeyEvent.

  • shiftKey

    boolean opsional

    Apakah tombol SHIFT ditekan atau tidak.

  • Salah satu dari keyup atau keydown.

KeyboardEventType

Chrome 44+ browser.* sejak Chrome 148

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.

  • aktif

    boolean opsional

    Menunjukkan bahwa item ini diaktifkan.

  • id

    string

    String yang akan diteruskan ke callback yang merujuk ke 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+ browser.* sejak Chrome 148

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

Enum

"check"

"radio"

"separator"

MenuParameters

Chrome 88+ browser.* sejak Chrome 148

Properti

  • engineID

    string

    ID mesin yang akan digunakan.

  • item

    MenuItem yang akan ditambahkan atau diperbarui. Tindakan tersebut akan ditambahkan sesuai urutan keberadaannya dalam array.

MouseButton

Chrome 44+ browser.* sejak Chrome 148

Tombol mouse yang diklik.

Enum

"left"

"middle"

"right"

ScreenType

Chrome 44+ browser.* sejak Chrome 148

Jenis layar tempat IME diaktifkan.

Enum

"normal"

"login"

"lock"

"secondary-login"

UnderlineStyle

Chrome 44+ browser.* sejak Chrome 148

Jenis garis bawah untuk mengubah segmen ini.

Enum

"underline"

"doubleUnderline"

"noUnderline"

WindowPosition

Chrome 44+ browser.* sejak Chrome 148

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

Enum

"cursor"

"composition"

Metode

clearComposition()

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

Menghapus komposisi saat ini. Jika ekstensi ini tidak memiliki IME aktif, tindakan ini akan gagal.

Parameter

  • parameter

    objek

    • contextID

      angka

      ID konteks tempat komposisi akan dihapus

Hasil

  • Promise<boolean>

    Chrome 111+ browser.* sejak Chrome 148

    Menyelesaikan saat operasi selesai dengan boolean yang menunjukkan apakah teks diterima atau tidak. Jika gagal, promise akan ditolak.

commitText()

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

Menyimpan teks yang diberikan ke input saat ini.

Parameter

  • parameter

    objek

    • contextID

      angka

      ID konteks tempat teks akan di-commit

    • teks

      string

      Teks yang akan di-commit

Hasil

  • Promise<boolean>

    Chrome 111+ browser.* sejak Chrome 148

    Menyelesaikan saat operasi selesai dengan boolean yang menunjukkan apakah teks diterima atau tidak. Jika gagal, promise akan ditolak.

deleteSurroundingText()

browser.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 tanda sisipan tempat penghapusan akan dimulai. Nilai ini dapat berupa angka negatif.

Hasil

  • Promise<void>

    Chrome 111+ browser.* sejak Chrome 148

    Diselesaikan saat operasi selesai.

hideInputView()

browser.input.ime.hideInputView(): void

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

keyEventHandled()

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

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

Parameter

  • requestId

    string

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

  • respons

    boolean

    Benar jika penekanan tombol ditangani, salah jika tidak

sendKeyEvents()

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

Mengirim peristiwa utama. Fungsi ini diharapkan akan digunakan oleh keyboard virtual. Saat tombol pada 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+ browser.* sejak Chrome 148

    Diselesaikan saat operasi selesai.

setAssistiveWindowButtonHighlighted()

Chrome 86+ browser.* sejak Chrome 148
browser.input.ime.setAssistiveWindowButtonHighlighted(
  parameters: object,
)
: Promise<void>

Menandai/Membatalkan penandaan tombol di jendela bantuan.

Parameter

  • parameter

    objek

    • announceString

      string opsional

      Teks yang akan diucapkan oleh pembaca layar.

    • ID tombol

    • contextID

      angka

      ID konteks yang memiliki jendela bantuan.

    • disorot

      boolean

      Apakah tombol harus ditandai.

    • windowType

      "undo"

      Jenis jendela tempat tombol berada.

Hasil

  • Promise<void>

    Chrome 111+ browser.* sejak Chrome 148

    Diselesaikan saat operasi selesai. Jika gagal, promise akan ditolak.

setAssistiveWindowProperties()

Chrome 85+ browser.* sejak Chrome 148
browser.input.ime.setAssistiveWindowProperties(
  parameters: object,
)
: Promise<boolean>

Menampilkan/Menyembunyikan jendela bantuan dengan properti yang diberikan.

Parameter

  • parameter

    objek

Hasil

  • Promise<boolean>

    Chrome 111+ browser.* sejak Chrome 148

    Diselesaikan saat operasi selesai.

setCandidates()

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

Menetapkan daftar kandidat saat ini. Tindakan ini akan 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

        number opsional

        ID untuk menambahkan kandidat ini

      • penggunaan

        objek opsional

        Penggunaan atau deskripsi detail 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+ browser.* sejak Chrome 148

    Diselesaikan saat operasi selesai.

setCandidateWindowProperties()

browser.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 yang akan ditetapkan propertinya.

    • properti

      objek

      • auxiliaryText

        string opsional

        Teks yang ditampilkan di bagian bawah jendela kandidat.

      • auxiliaryTextVisible

        boolean opsional

        True untuk menampilkan teks tambahan, false untuk menyembunyikannya.

      • currentCandidateIndex

        number opsional

        Chrome 84+ browser.* sejak Chrome 148

        Indeks kandidat yang saat ini dipilih dari total kandidat.

      • cursorVisible

        boolean opsional

        True untuk menampilkan kursor, false untuk menyembunyikannya.

      • pageSize

        number opsional

        Jumlah kandidat yang akan ditampilkan per halaman.

      • totalCandidates

        number opsional

        Chrome 84+ browser.* sejak Chrome 148

        Jumlah total kandidat untuk jendela kandidat.

      • vertikal

        boolean opsional

        Benar jika jendela kandidat harus dirender secara vertikal, salah untuk membuatnya horizontal.

      • terlihat

        boolean opsional

        True untuk menampilkan jendela Kandidat, false untuk menyembunyikannya.

      • windowPosition

        WindowPosition opsional

        Tempat untuk menampilkan jendela kandidat.

Hasil

  • Promise<boolean>

    Chrome 111+ browser.* sejak Chrome 148

    Diselesaikan saat operasi selesai.

setComposition()

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

Menetapkan komposisi saat ini. Jika ekstensi ini tidak memiliki IME aktif, tindakan 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.

      • mulai

        angka

        Indeks karakter untuk memulai segmen ini

      • Jenis garis bawah untuk mengubah segmen ini.

    • selectionEnd

      number opsional

      Posisi dalam teks tempat pilihan berakhir.

    • selectionStart

      number opsional

      Posisi dalam teks tempat pilihan dimulai.

    • teks

      string

      Teks yang akan ditetapkan

Hasil

  • Promise<boolean>

    Chrome 111+ browser.* sejak Chrome 148

    Menyelesaikan saat operasi selesai dengan boolean yang menunjukkan apakah teks diterima atau tidak. Jika gagal, promise akan ditolak.

setCursorPosition()

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

Menetapkan posisi kursor di jendela kandidat. Ini adalah 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+ browser.* sejak Chrome 148

    Diselesaikan saat operasi selesai

setMenuItems()

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

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

Parameter

Hasil

  • Promise<void>

    Chrome 111+ browser.* sejak Chrome 148

updateMenuItems()

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

Memperbarui status MenuItem yang ditentukan

Parameter

Hasil

  • Promise<void>

    Chrome 111+ browser.* sejak Chrome 148

    Diselesaikan saat operasi selesai

Acara

onActivate

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

Peristiwa ini dikirim saat IME diaktifkan. Hal ini menandakan bahwa IME akan menerima peristiwa onKeyPress.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

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

onAssistiveWindowButtonClicked

Chrome 85+ browser.* sejak Chrome 148
browser.input.ime.onAssistiveWindowButtonClicked.addListener(
  callback: function,
)

Peristiwa ini dikirim saat tombol di jendela bantuan diklik.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (details: object) => void

onBlur

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

Peristiwa ini dikirim saat fokus keluar dari kotak teks. Peristiwa 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

browser.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

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

Peristiwa ini dikirim saat IME dinonaktifkan. Hal ini menandakan bahwa IME tidak akan lagi menerima peristiwa onKeyPress.

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (engineID: string) => void

    • engineID

      string

onFocus

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

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

Parameter

onInputContextUpdate

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

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

Parameter

onKeyEvent

browser.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 undefined 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

browser.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

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

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

Parameter

  • callback

    fungsi

    Parameter callback terlihat seperti:

    (engineID: string) => void

    • engineID

      string

onSurroundingTextChanged

browser.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 tanda sisipan jika tidak ada pilihan.

      • fokus

        angka

        Posisi akhir pilihan. Nilai ini menunjukkan posisi tanda sisipan jika tidak ada pilihan.

      • offset

        angka

        Chrome 46+ browser.* sejak Chrome 148

        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 hanyalah sebagian dari semua teks di kolom input.