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
inputAnda harus mendeklarasikan izin "input" di manifes ekstensi untuk menggunakan input.ime API. Contoh:
{
"name": "My extension",
...
"permissions": [
"input"
],
...
}
Ketersediaan
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
ID tombol di jendela bantuan.
Enum
"undo"
"addToDictionary"
AssistiveWindowProperties
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
Jenis jendela bantuan.
Nilai
"undo"
AutoCapitalizeType
Jenis kapitalisasi otomatis kolom teks.
Enum
"characters"
"kata"
"sentences"
InputContext
Menjelaskan Konteks input
Properti
-
autoCapitalizeChrome 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 148Apakah 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
Jenis nilai yang diedit kolom teks ini, (Teks, Angka, URL, dll.)
InputContextType
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 148Apakah 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
requestIddari peristiwaonKeyEvent. -
shiftKey
boolean opsional
Apakah tombol SHIFT ditekan atau tidak.
-
jenis
Salah satu dari keyup atau keydown.
KeyboardEventType
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
Jenis item menu. Tombol pilihan di antara pemisah dianggap dikelompokkan.
Enum
"check"
"radio"
"separator"
MenuParameters
Properti
-
engineID
string
ID mesin yang akan digunakan.
-
item
MenuItem[]
MenuItem yang akan ditambahkan atau diperbarui. Tindakan tersebut akan ditambahkan sesuai urutan keberadaannya dalam array.
MouseButton
Tombol mouse yang diklik.
Enum
"left"
"middle"
"right"
ScreenType
Jenis layar tempat IME diaktifkan.
Enum
"normal"
"login"
"lock"
"secondary-login"
UnderlineStyle
Jenis garis bawah untuk mengubah segmen ini.
Enum
"underline"
"doubleUnderline"
"noUnderline"
WindowPosition
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 148Menyelesaikan 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 148Menyelesaikan 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 148Diselesaikan 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 148Diselesaikan saat operasi selesai.
setAssistiveWindowButtonHighlighted()
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.
-
buttonID
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 148Diselesaikan saat operasi selesai. Jika gagal, promise akan ditolak.
setAssistiveWindowProperties()
browser.input.ime.setAssistiveWindowProperties(
parameters: object,
): Promise<boolean>
Menampilkan/Menyembunyikan jendela bantuan dengan properti yang diberikan.
Parameter
-
parameter
objek
-
contextID
angka
ID konteks yang memiliki jendela bantuan.
-
properti
Properti jendela bantuan.
-
Hasil
-
Promise<boolean>
Chrome 111+ browser.* sejak Chrome 148Diselesaikan 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 148Diselesaikan 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 148Indeks 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 148Jumlah 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 148Diselesaikan 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
-
gaya
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 148Menyelesaikan 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 148Diselesaikan 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
-
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
-
parameter
Hasil
-
Promise<void>
Chrome 111+ browser.* sejak Chrome 148Diselesaikan 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
callbackterlihat seperti:(engineID: string, screen: ScreenType) => void
-
engineID
string
-
layar
-
onAssistiveWindowButtonClicked
browser.input.ime.onAssistiveWindowButtonClicked.addListener(
callback: function,
)
Peristiwa ini dikirim saat tombol di jendela bantuan diklik.
Parameter
-
callback
fungsi
Parameter
callbackterlihat seperti:(details: object) => void
-
detail
objek
-
buttonID
ID tombol yang diklik.
-
windowType
Jenis jendela bantuan.
-
-
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
callbackterlihat 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
callbackterlihat seperti:(engineID: string, candidateID: number, button: MouseButton) => void
-
engineID
string
-
candidateID
angka
-
tombol
-
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
callbackterlihat 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
-
callback
fungsi
Parameter
callbackterlihat seperti:(context: InputContext) => void
-
konteks
-
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
-
callback
fungsi
Parameter
callbackterlihat seperti:(context: InputContext) => void
-
konteks
-
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
callbackterlihat seperti:(engineID: string, keyData: KeyboardEvent, requestId: string) => boolean | undefined
-
engineID
string
-
keyData
-
requestId
string
-
return
boolean | undefined
-
onMenuItemActivated
browser.input.ime.onMenuItemActivated.addListener(
callback: function,
)
Dipanggil saat pengguna memilih item menu
Parameter
-
callback
fungsi
Parameter
callbackterlihat 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
callbackterlihat 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
callbackterlihat 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 148Posisi offset
text. Karenatexthanya menyertakan subset teks di sekitar kursor, offset menunjukkan posisi absolut karakter pertamatext. -
teks
string
Teks di sekitar kursor. Ini hanyalah sebagian dari semua teks di kolom input.
-
-