browser.input.ime

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

input

Bạ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

Chỉ dành cho ChromeOS

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

Chrome 85 trở lên trình duyệt.* kể từ Chrome 148

Mã nhận dạng của các nút trong cửa sổ hỗ trợ.

Enum

"hoàn tác"

"addToDictionary"

AssistiveWindowProperties

Chrome 85 trở lên trình duyệt.* kể từ Chrome 148

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

Chrome 85 trở lên trình duyệt.* kể từ Chrome 148

Loại cửa sổ hỗ trợ.

Giá trị

"hoàn tác"

AutoCapitalizeType

Chrome 69 trở lên browser.* kể từ Chrome 148

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

  • autoCapitalize
    Chrome 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 148

    Liệ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 giá trị mà trường văn bản này chỉnh sửa (Văn bản, Số, URL, v.v.)

InputContextType

Trình duyệt Chrome 44 trở lên .* kể từ Chrome 148

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 148

    Liệ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ố requestId của sự kiện onKeyEvent.

  • shiftKey

    boolean không bắt buộc

    Liệu phím SHIFT có được nhấn hay không.

  • Một trong hai sự kiện keyup hoặc keydown.

KeyboardEventType

Trình duyệt Chrome 44 trở lên .* kể từ Chrome 148

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

Trình duyệt Chrome 44 trở lên .* kể từ Chrome 148

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

Chrome 88 trở lên trình duyệt.* kể từ Chrome 148

Thuộc tính

  • engineID

    chuỗi

    Mã nhận dạng của công cụ cần sử dụng.

  • mục

    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

Trình duyệt Chrome 44 trở lên .* kể từ Chrome 148

Nút chuột nào đã được nhấp.

Enum

"left"

"middle"

"right"

ScreenType

Trình duyệt Chrome 44 trở lên .* kể từ Chrome 148

Loại màn hình mà IME được kích hoạt.

Enum

"normal"

"login"

"lock"

"secondary-login"

UnderlineStyle

Trình duyệt Chrome 44 trở lên .* kể từ Chrome 148

Loại gạch dưới để sửa đổi phân đoạn này.

Enum

"underline"

"doubleUnderline"

"noUnderline"

WindowPosition

Trình duyệt Chrome 44 trở lên .* kể từ Chrome 148

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 148

    Giả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 148

    Giả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 148

    Giả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 148

    Giải quyết khi thao tác hoàn tất.

setAssistiveWindowButtonHighlighted()

Chrome 86 trở lên browser.* kể từ Chrome 148
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.

    • 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 148

    Giả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()

Chrome 85 trở lên trình duyệt.* kể từ Chrome 148
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ợ.

    • 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 148

    Giả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 148

    Giả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 148

        Chỉ 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 148

        Tổ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 148

    Giả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

      • 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 148

    Giả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 148

    Giả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ố

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ố

Giá trị trả về

  • Promise<void>

    Chrome 111 trở lên browser.* kể từ Chrome 148

    Giả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ố callback có dạng như sau:

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

onAssistiveWindowButtonClicked

Chrome 85 trở lên trình duyệt.* kể từ Chrome 148
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ố callback có dạng như sau:

    (details: object) => void

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ố callback có 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ố callback có dạng như sau:

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

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ố callback có 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ố

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ố

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ố callback có dạng như sau:

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

    • 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ố callback có 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ố callback có 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ố callback có 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 148

        Vị trí bù trừ của text. Vì text chỉ 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ủa text.

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