Mô tả
Sử dụng API chrome.input.ime để triển khai IME tuỳ chỉnh cho ChromeOS. Điều này cho phép tiện ích của bạn xử lý các thao tác gõ phím, đặt cấu trúc và quản lý cửa sổ đề xuất.
Quyền
inputBạn phải khai báo quyền "input" trong tệp kê khai tiện ích để sử dụng API input.ime. Ví dụ:
{
"name": "My extension",
...
"permissions": [
"input"
],
...
}
Phạm vi cung cấp
Ví dụ
Đoạn mã sau đây tạo một IME chuyển đổi các chữ cái đã nhập thành chữ hoa.
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;
}
}
);
Loại
AssistiveWindowButton
Mã nhận dạng của các nút trong cửa sổ hỗ trợ.
Enum
"hoàn tác"
"addToDictionary"
AssistiveWindowProperties
Thuộc tính của cửa sổ hỗ trợ.
Thuộc tính
-
announceString
chuỗi không bắt buộc
Chuỗi để ChromeVox thông báo.
-
loại
"hoàn tác"
-
hiển thị
boolean
Đặt thành true để hiện AssistiveWindow, đặt thành false để ẩn.
AssistiveWindowType
Loại cửa sổ hỗ trợ.
Giá trị
"hoàn tác"
AutoCapitalizeType
Kiểu tự động viết hoa của trường văn bản.
Enum
"characters"
"từ"
"sentences"
InputContext
Mô tả một Context đầu vào
Thuộc tính
-
autoCapitalizeChrome 69 trở lên browser.* kể từ Chrome 148
Kiểu tự động viết hoa của trường văn bản.
-
autoComplete
boolean
Liệu trường văn bản có muốn tự động hoàn thành hay không.
-
autoCorrect
boolean
Liệu trường văn bản có muốn tự động sửa lỗi hay không.
-
contextID
số
Thuộc tính này được dùng để chỉ định mục tiêu của các thao tác trên trường văn bản. Mã nhận dạng này sẽ không hợp lệ ngay khi onBlur được gọi.
-
shouldDoLearning
boolean
Chrome 68 trở lên browser.* kể từ Chrome 148Liệu văn bản được nhập vào trường văn bản có nên được dùng để cải thiện các đề xuất nhập liệu cho người dùng hay không.
-
spellCheck
boolean
Liệu trường văn bản có muốn kiểm tra chính tả hay không.
-
loại
Loại giá trị mà trường văn bản này chỉnh sửa (Văn bản, Số, URL, v.v.)
InputContextType
Loại giá trị mà trường văn bản này chỉnh sửa (Văn bản, Số, URL, v.v.)
Enum
"text"
"search"
"tel"
"url"
"email"
"number"
"password"
"null"
KeyboardEvent
Xem http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
Thuộc tính
-
altKey
boolean không bắt buộc
Liệu phím ALT có được nhấn hay không.
-
altgrKey
boolean không bắt buộc
Chrome 79 trở lên browser.* kể từ Chrome 148Liệu phím ALTGR có được nhấn hay không.
-
capsLock
boolean không bắt buộc
Cho biết phím CAPS_LOCK có được bật hay không.
-
mã
chuỗi
Giá trị của phím vật lý đang được nhấn. Giá trị này không chịu ảnh hưởng của bố cục bàn phím hiện tại hoặc trạng thái phím bổ trợ.
-
ctrlKey
boolean không bắt buộc
Liệu phím CTRL có được nhấn hay không.
-
extensionId
chuỗi không bắt buộc
Mã tiện ích của người gửi sự kiện chính này.
-
phím
chuỗi
Giá trị của phím đang được nhấn
-
keyCode
number không bắt buộc
keyCode HTML không dùng nữa, là mã số phụ thuộc vào hệ thống và cách triển khai, biểu thị giá trị nhận dạng chưa sửa đổi liên kết với phím được nhấn.
-
requestId
chuỗi không bắt buộc
(Không dùng nữa) Mã của yêu cầu. Thay vào đó, hãy sử dụng tham số
requestIdcủa sự kiệnonKeyEvent. -
shiftKey
boolean không bắt buộc
Liệu phím SHIFT có được nhấn hay không.
-
loại
Một trong hai sự kiện keyup hoặc keydown.
KeyboardEventType
Enum
"keyup"
"keydown"
MenuItem
Một mục trong trình đơn mà phương thức nhập sử dụng để tương tác với người dùng từ trình đơn ngôn ngữ.
Thuộc tính
-
đã chọn
boolean không bắt buộc
Cho biết mục này phải được vẽ bằng dấu kiểm.
-
đang bật
boolean không bắt buộc
Cho biết mục này đang bật.
-
id
chuỗi
Chuỗi sẽ được truyền đến các lệnh gọi lại tham chiếu đến MenuItem này.
-
nhãn
chuỗi không bắt buộc
Văn bản xuất hiện trong trình đơn cho mục này.
-
kiểu
MenuItemStyle không bắt buộc
Loại mục trong trình đơn.
-
hiển thị
boolean không bắt buộc
Cho biết mục này hiển thị.
MenuItemStyle
Loại mục trong trình đơn. Các nút chọn giữa các dấu phân tách được coi là đã nhóm.
Enum
"check"
"radio"
"separator"
MenuParameters
Thuộc tính
-
engineID
chuỗi
Mã nhận dạng của công cụ cần sử dụng.
-
mục
MenuItem[]
MenuItems cần thêm hoặc cập nhật. Các mục này sẽ được thêm theo thứ tự tồn tại trong mảng.
MouseButton
Nút chuột nào đã được nhấp.
Enum
"left"
"middle"
"right"
ScreenType
Loại màn hình mà IME được kích hoạt.
Enum
"normal"
"login"
"lock"
"secondary-login"
UnderlineStyle
Loại gạch dưới để sửa đổi phân đoạn này.
Enum
"underline"
"doubleUnderline"
"noUnderline"
WindowPosition
Nơi hiển thị cửa sổ đề xuất. Nếu bạn đặt thành "cursor", cửa sổ sẽ di chuyển theo con trỏ. Nếu bạn đặt thành "composition", cửa sổ sẽ được khoá ở đầu thành phần.
Enum
"cursor"
"composition"
Phương thức
clearComposition()
browser.input.ime.clearComposition(
parameters: object,
): Promise<boolean>
Xoá bản soạn thảo hiện tại. Nếu tiện ích này không sở hữu IME đang hoạt động, thì thao tác này sẽ không thành công.
Thông số
-
tham số
đối tượng
-
contextID
số
Mã nhận dạng của bối cảnh mà thành phần sẽ bị xoá
-
Giá trị trả về
-
Promise<boolean>
Chrome 111 trở lên browser.* kể từ Chrome 148Giải quyết khi thao tác hoàn tất bằng một boolean cho biết văn bản có được chấp nhận hay không. Nếu không thành công, lời hứa sẽ bị từ chối.
commitText()
browser.input.ime.commitText(
parameters: object,
): Promise<boolean>
Xác nhận văn bản được cung cấp cho dữ liệu đầu vào hiện tại.
Thông số
-
tham số
đối tượng
-
contextID
số
Mã nhận dạng của bối cảnh mà văn bản sẽ được xác nhận
-
văn bản
chuỗi
Văn bản cần cam kết
-
Giá trị trả về
-
Promise<boolean>
Chrome 111 trở lên browser.* kể từ Chrome 148Giải quyết khi thao tác hoàn tất bằng một boolean cho biết văn bản có được chấp nhận hay không. Nếu không thành công, lời hứa sẽ bị từ chối.
deleteSurroundingText()
browser.input.ime.deleteSurroundingText(
parameters: object,
): Promise<void>
Xoá văn bản xung quanh con nháy.
Thông số
-
tham số
đối tượng
-
contextID
số
Mã nhận dạng của ngữ cảnh nơi văn bản xung quanh sẽ bị xoá.
-
engineID
chuỗi
Mã của công cụ nhận sự kiện.
-
chiều dài
số
Số ký tự cần xoá
-
độ lệch
số
Độ lệch so với vị trí con nháy nơi bắt đầu xoá. Giá trị này có thể là số âm.
-
Giá trị trả về
-
Promise<void>
Chrome 111 trở lên browser.* kể từ Chrome 148Giải quyết khi thao tác hoàn tất.
hideInputView()
browser.input.ime.hideInputView(): void
Ẩn cửa sổ chế độ xem đầu vào, cửa sổ này được hệ thống tự động bật lên. Nếu cửa sổ chế độ xem đầu vào đã bị ẩn, thì hàm này sẽ không làm gì cả.
keyEventHandled()
browser.input.ime.keyEventHandled(
requestId: string,
response: boolean,
): void
Cho biết rằng sự kiện phím mà onKeyEvent nhận được đã được xử lý. Bạn chỉ nên gọi hàm này nếu trình nghe onKeyEvent không đồng bộ.
Thông số
-
requestId
chuỗi
Mã yêu cầu của sự kiện đã được xử lý. Giá trị này phải lấy từ keyEvent.requestId
-
phản hồi
boolean
Đúng nếu thao tác gõ phím đã được xử lý, sai nếu không
sendKeyEvents()
browser.input.ime.sendKeyEvents(
parameters: object,
): Promise<void>
Gửi sự kiện chính. Hàm này dự kiến sẽ được bàn phím ảo sử dụng. Khi người dùng nhấn(các) phím trên bàn phím ảo, hàm này sẽ được dùng để truyền sự kiện đó đến hệ thống.
Thông số
-
tham số
đối tượng
-
contextID
số
Mã nhận dạng của bối cảnh nơi sự kiện chính sẽ được gửi hoặc 0 để gửi sự kiện chính đến trường không phải trường nhập dữ liệu.
-
keyData
Dữ liệu về sự kiện chính.
-
Giá trị trả về
-
Promise<void>
Chrome 111 trở lên browser.* kể từ Chrome 148Giải quyết khi thao tác hoàn tất.
setAssistiveWindowButtonHighlighted()
browser.input.ime.setAssistiveWindowButtonHighlighted(
parameters: object,
): Promise<void>
Làm nổi bật/bỏ làm nổi bật một nút trong cửa sổ hỗ trợ.
Thông số
-
tham số
đối tượng
-
announceString
chuỗi không bắt buộc
Văn bản để trình đọc màn hình thông báo.
-
buttonID
Mã nhận dạng của nút
-
contextID
số
Mã nhận dạng của bối cảnh sở hữu cửa sổ hỗ trợ.
-
được làm nổi bật
boolean
Liệu nút có nên được làm nổi bật hay không.
-
windowType
"hoàn tác"
Loại cửa sổ mà nút này thuộc về.
-
Giá trị trả về
-
Promise<void>
Chrome 111 trở lên browser.* kể từ Chrome 148Giải quyết khi thao tác hoàn tất. Nếu không thành công, lời hứa sẽ bị từ chối.
setAssistiveWindowProperties()
browser.input.ime.setAssistiveWindowProperties(
parameters: object,
): Promise<boolean>
Hiện/ẩn cửa sổ hỗ trợ có các thuộc tính đã cho.
Thông số
-
tham số
đối tượng
-
contextID
số
Mã nhận dạng của bối cảnh sở hữu cửa sổ hỗ trợ.
-
tài sản
Thuộc tính của cửa sổ hỗ trợ.
-
Giá trị trả về
-
Promise<boolean>
Chrome 111 trở lên browser.* kể từ Chrome 148Giải quyết khi thao tác hoàn tất.
setCandidates()
browser.input.ime.setCandidates(
parameters: object,
): Promise<boolean>
Đặt danh sách ứng cử viên hiện tại. Thao tác này sẽ không thành công nếu tiện ích này không sở hữu IME đang hoạt động
Thông số
-
tham số
đối tượng
-
ứng viên
object[]
Danh sách các đề xuất để hiển thị trong cửa sổ đề xuất
-
chú thích
chuỗi không bắt buộc
Văn bản bổ sung mô tả ứng viên
-
đề xuất
chuỗi
Ứng viên
-
id
số
Mã nhận dạng của ứng viên
-
nhãn
chuỗi không bắt buộc
Chuỗi ngắn hiển thị bên cạnh đề xuất, thường là phím tắt hoặc chỉ mục
-
parentId
number không bắt buộc
Mã nhận dạng để thêm các ứng viên này vào
-
mức sử dụng
object không bắt buộc
Cách sử dụng hoặc nội dung mô tả chi tiết về từ.
-
nội dung
chuỗi
Chuỗi nội dung của phần mô tả chi tiết.
-
tiêu đề
chuỗi
Chuỗi tiêu đề của nội dung mô tả chi tiết.
-
-
-
contextID
số
Mã nhận dạng của ngữ cảnh sở hữu cửa sổ đề xuất.
-
Giá trị trả về
-
Promise<boolean>
Chrome 111 trở lên browser.* kể từ Chrome 148Giải quyết khi thao tác hoàn tất.
setCandidateWindowProperties()
browser.input.ime.setCandidateWindowProperties(
parameters: object,
): Promise<boolean>
Đặt thuộc tính của cửa sổ đề xuất. Thao tác này sẽ không thành công nếu tiện ích không sở hữu IME đang hoạt động
Thông số
-
tham số
đối tượng
-
engineID
chuỗi
Mã của công cụ để đặt thuộc tính.
-
tài sản
đối tượng
-
auxiliaryText
chuỗi không bắt buộc
Văn bản xuất hiện ở cuối cửa sổ đề xuất.
-
auxiliaryTextVisible
boolean không bắt buộc
True để hiển thị văn bản bổ trợ, false để ẩn văn bản đó.
-
currentCandidateIndex
number không bắt buộc
Chrome 84 trở lên trình duyệt.* kể từ Chrome 148Chỉ mục của ứng viên hiện được chọn trong tổng số ứng viên.
-
cursorVisible
boolean không bắt buộc
True để hiện con trỏ, false để ẩn con trỏ.
-
pageSize
number không bắt buộc
Số lượng ứng viên hiển thị trên mỗi trang.
-
totalCandidates
number không bắt buộc
Chrome 84 trở lên trình duyệt.* kể từ Chrome 148Tổng số ứng viên cho cửa sổ ứng viên.
-
ngành dọc
boolean không bắt buộc
True nếu cửa sổ đề xuất cần được hiển thị theo chiều dọc, false để hiển thị theo chiều ngang.
-
hiển thị
boolean không bắt buộc
True để hiện cửa sổ Candidate, false để ẩn cửa sổ này.
-
windowPosition
WindowPosition không bắt buộc
Nơi hiển thị cửa sổ đề xuất.
-
-
Giá trị trả về
-
Promise<boolean>
Chrome 111 trở lên browser.* kể từ Chrome 148Giải quyết khi thao tác hoàn tất.
setComposition()
browser.input.ime.setComposition(
parameters: object,
): Promise<boolean>
Đặt thành phần hiện tại. Nếu tiện ích này không sở hữu IME đang hoạt động, thì thao tác này sẽ không thành công.
Thông số
-
tham số
đối tượng
-
contextID
số
Mã của bối cảnh nơi văn bản soạn thảo sẽ được đặt
-
con trỏ
số
Vị trí của con trỏ trong văn bản.
-
phân đoạn
object[] không bắt buộc
Danh sách các phân đoạn và loại phân đoạn liên quan.
-
end
số
Chỉ mục của ký tự để kết thúc phân đoạn này sau đó.
-
start
số
Chỉ mục của ký tự để bắt đầu phân đoạn này
-
kiểu
Loại gạch dưới để sửa đổi phân đoạn này.
-
-
selectionEnd
number không bắt buộc
Vị trí trong văn bản mà vùng chọn kết thúc.
-
selectionStart
number không bắt buộc
Vị trí trong văn bản mà vùng chọn bắt đầu.
-
văn bản
chuỗi
Văn bản cần đặt
-
Giá trị trả về
-
Promise<boolean>
Chrome 111 trở lên browser.* kể từ Chrome 148Giải quyết khi thao tác hoàn tất bằng một boolean cho biết văn bản có được chấp nhận hay không. Nếu không thành công, lời hứa sẽ bị từ chối.
setCursorPosition()
browser.input.ime.setCursorPosition(
parameters: object,
): Promise<boolean>
Đặt vị trí của con trỏ trong cửa sổ đề xuất. Đây là một thao tác không hoạt động nếu tiện ích này không sở hữu IME đang hoạt động.
Thông số
-
tham số
đối tượng
-
candidateID
số
Mã nhận dạng của ứng viên cần chọn.
-
contextID
số
Mã nhận dạng của ngữ cảnh sở hữu cửa sổ đề xuất.
-
Giá trị trả về
-
Promise<boolean>
Chrome 111 trở lên browser.* kể từ Chrome 148Giải quyết khi thao tác hoàn tất
setMenuItems()
browser.input.ime.setMenuItems(
parameters: MenuParameters,
): Promise<void>
Thêm các mục trình đơn được cung cấp vào trình đơn ngôn ngữ khi IME này đang hoạt động.
Thông số
-
tham số
Giá trị trả về
-
Promise<void>
Chrome 111 trở lên browser.* kể từ Chrome 148
updateMenuItems()
browser.input.ime.updateMenuItems(
parameters: MenuParameters,
): Promise<void>
Cập nhật trạng thái của các MenuItem được chỉ định
Thông số
-
tham số
Giá trị trả về
-
Promise<void>
Chrome 111 trở lên browser.* kể từ Chrome 148Giải quyết khi thao tác hoàn tất
Sự kiện
onActivate
browser.input.ime.onActivate.addListener(
callback: function,
)
Sự kiện này được gửi khi một IME được kích hoạt. Điều này báo hiệu rằng IME sẽ nhận được các sự kiện onKeyPress.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(engineID: string, screen: ScreenType) => void
-
engineID
chuỗi
-
màn hình
-
onAssistiveWindowButtonClicked
browser.input.ime.onAssistiveWindowButtonClicked.addListener(
callback: function,
)
Sự kiện này được gửi khi người dùng nhấp vào một nút trong cửa sổ hỗ trợ.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(details: object) => void
-
chi tiết
đối tượng
-
buttonID
Mã nhận dạng của nút được nhấp.
-
windowType
Loại cửa sổ hỗ trợ.
-
-
onBlur
browser.input.ime.onBlur.addListener(
callback: function,
)
Sự kiện này được gửi khi tiêu điểm rời khỏi hộp văn bản. Sự kiện này được gửi đến tất cả tiện ích đang theo dõi sự kiện này và được người dùng bật.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(contextID: number) => void
-
contextID
số
-
onCandidateClicked
browser.input.ime.onCandidateClicked.addListener(
callback: function,
)
Sự kiện này được gửi nếu tiện ích này sở hữu IME đang hoạt động.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(engineID: string, candidateID: number, button: MouseButton) => void
-
engineID
chuỗi
-
candidateID
số
-
nút
-
onDeactivated
browser.input.ime.onDeactivated.addListener(
callback: function,
)
Sự kiện này được gửi khi một IME bị huỷ kích hoạt. Điều này cho biết IME sẽ không còn nhận được sự kiện onKeyPress nữa.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(engineID: string) => void
-
engineID
chuỗi
-
onFocus
browser.input.ime.onFocus.addListener(
callback: function,
)
Sự kiện này được gửi khi tiêu điểm chuyển vào hộp văn bản. Sự kiện này được gửi đến tất cả tiện ích đang theo dõi sự kiện này và được người dùng bật.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(context: InputContext) => void
-
bối cảnh
-
onInputContextUpdate
browser.input.ime.onInputContextUpdate.addListener(
callback: function,
)
Sự kiện này được gửi khi các thuộc tính của InputContext hiện tại thay đổi, chẳng hạn như loại. Sự kiện này được gửi đến tất cả tiện ích đang theo dõi sự kiện này và được người dùng bật.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(context: InputContext) => void
-
bối cảnh
-
onKeyEvent
browser.input.ime.onKeyEvent.addListener(
callback: function,
)
Được kích hoạt khi hệ điều hành gửi một sự kiện nhấn phím. Sự kiện sẽ được gửi đến tiện ích nếu tiện ích này sở hữu IME đang hoạt động. Hàm trình nghe sẽ trả về giá trị true nếu sự kiện được xử lý, trả về giá trị false nếu sự kiện không được xử lý. Nếu sự kiện được đánh giá không đồng bộ, thì hàm này phải trả về giá trị không xác định và sau đó, IME phải gọi keyEventHandled() kèm theo kết quả.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(engineID: string, keyData: KeyboardEvent, requestId: string) => boolean | undefined
-
engineID
chuỗi
-
keyData
-
requestId
chuỗi
-
returns
boolean | undefined
-
onMenuItemActivated
browser.input.ime.onMenuItemActivated.addListener(
callback: function,
)
Được gọi khi người dùng chọn một mục trong trình đơn
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(engineID: string, name: string) => void
-
engineID
chuỗi
-
tên
chuỗi
-
onReset
browser.input.ime.onReset.addListener(
callback: function,
)
Sự kiện này được gửi khi Chrome chấm dứt phiên nhập văn bản đang diễn ra.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(engineID: string) => void
-
engineID
chuỗi
-
onSurroundingTextChanged
browser.input.ime.onSurroundingTextChanged.addListener(
callback: function,
)
Được gọi khi chuỗi có thể chỉnh sửa xung quanh con nháy thay đổi hoặc khi vị trí con nháy di chuyển. Độ dài văn bản được giới hạn ở mức 100 ký tự cho mỗi hướng qua lại.
Thông số
-
callback
hàm
Tham số
callbackcó dạng như sau:(engineID: string, surroundingInfo: object) => void
-
engineID
chuỗi
-
surroundingInfo
đối tượng
-
liên kết
số
Vị trí bắt đầu của vùng chọn. Giá trị này cho biết vị trí con nháy nếu không có lựa chọn nào.
-
tiêu điểm
số
Vị trí kết thúc của vùng chọn. Giá trị này cho biết vị trí con nháy nếu không có lựa chọn nào.
-
độ lệch
số
Chrome 46 trở lên browser.* kể từ Chrome 148Vị trí bù trừ của
text. Vìtextchỉ bao gồm một tập hợp con văn bản xung quanh con trỏ, nên độ lệch cho biết vị trí tuyệt đối của ký tự đầu tiên củatext. -
văn bản
chuỗi
Văn bản xung quanh con trỏ. Đây chỉ là một phần của toàn bộ văn bản trong trường nhập dữ liệu.
-
-