chrome.input.ime

Description

使用 chrome.input.ime API 为 Chrome 操作系统实现自定义 IME。这允许您的扩展程序处理击键、设置组合和管理候选窗口。

Permissions

input

# Manifest

您必须在扩展清单中声明“输入input”权限才能使用 input.ime API。例如:

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

# Examples

以下代码创建一个 IME,将键入的字母转换为大写。

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;
    }
  }
);

有关使用此 API 的示例,请参阅基本 basic input.ime sample。有关其他示例和查看源代码的帮助,请参阅示例Samples

Summary

Types

AssistiveWindowButton

Chrome 85+

辅助窗口中按钮的 ID。

TYPE

"undo", or "addToDictionary"

AssistiveWindowProperties

Chrome 85+

辅助窗口的属性。

PROPERTIES

  • announceString

    string optional

    ChromeVox 宣布的字符串。

  • type

    "undo"

  • visible

    boolean

    设置 true 以显示 AssistiveWindow,设置 false 以隐藏。

AssistiveWindowType

Chrome 85+

辅助窗口的类型。

VALUE

"undo"

AutoCapitalizeType

Chrome 69+

文本字段的自动大写类型。

TYPE

"characters", "words", or "sentences"

InputContext

描述输入上下文

PROPERTIES

  • autoCapitalize

    AutoCapitalizeType

    Chrome 69+

    文本字段的自动大写类型。

  • autoComplete

    boolean

    文本字段是否需要自动完成。

  • autoCorrect

    boolean

    文本字段是否需要自动更正。

  • contextID

    number

    这用于指定文本字段操作的目标。一旦 onBlur 被调用,这个 ID 就会失效。

  • shouldDoLearning

    boolean

    Chrome 68+

    是否应使用输入到文本字段中的文本来改进用户的键入建议。

  • spellCheck

    boolean

    文本字段是否需要拼写检查。

  • type

    InputContextType

    此文本字段编辑的值类型(文本、数字、URL 等)

InputContextType

Chrome 44+

此文本字段编辑的值类型(文本、数字、URL 等)

TYPE

"text", "search", "tel", "url", "email", "number", "password", or "null"

KeyboardEvent

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

PROPERTIES

  • altKey

    boolean optional

    是否按下了 ALT 键。

  • altgrKey

    boolean optional

    Chrome 79+

    ALTGR 键是否被按下。

  • capsLock

    boolean optional

    是否启用 CAPS_LOCK。

  • code

    string

    被按下的物理键的值。该值不受当前键盘布局或修饰符状态的影响。

  • ctrlKey

    boolean optional

    是否按下 CTRL 键。

  • extensionId

    string optional

    此 keyevent 的发送者的扩展 ID。

  • key

    string

    被按下的键的值

  • keyCode

    number optional

    不推荐使用的 HTML keyCode,它是依赖于系统和实现的数字代码,表示与按下的键关联的未修改标识符。

  • requestId

    string optional

    (已弃用)请求的 ID。请改用 onKeyEvent 事件中的 requestId 参数。

  • shiftKey

    boolean optional

    SHIFT 键是否被按下。

  • type

    KeyboardEventType

    keyup 或 keydown 之一。

KeyboardEventType

Chrome 44+

TYPE

"keyup", or "keydown"

输入法用来从语言菜单与用户交互的菜单项。

PROPERTIES

  • checked

    boolean optional

    表示该项目应该用支票绘制。

  • enabled

    boolean optional

    表示该项目已启用。

  • id

    string

    将传递给引用此 MenuItem 的回调的字符串。

  • label

    string optional

    此项目的菜单中显示的文本。

  • style

    MenuItemStyle optional

    菜单项的类型。

  • visible

    boolean optional

    表示该项目可见。

Chrome 44+

菜单项的类型。分隔符之间的单选按钮被认为是分组的。

TYPE

"check", "radio", or "separator"

Chrome 88+

PROPERTIES

  • engineID

    string

    要使用的引擎的 ID。

  • items

    MenuItem[]

    要添加或更新的菜单项。它们将按照它们在数组中的存在顺序添加。

MouseButton

Chrome 44+

单击了哪些鼠标按钮。

TYPE

"left", "middle", or "right"

ScreenType

Chrome 44+

在其下激活 IME 的屏幕类型。

TYPE

"normal", "login", "lock", or "secondary-login"

UnderlineStyle

Chrome 44+

修改此段的下划线类型。

TYPE

"underline", "doubleUnderline", or "noUnderline"

WindowPosition

Chrome 44+

在哪里显示候选窗口。如果设置为 'cursor',则窗口跟随光标。如果设置为“composition”,则窗口将锁定在合成的开头。

TYPE

"cursor", or "composition"

Methods

clearComposition

chrome.input.ime.clearComposition(
  parameters: object,
  callback?: function,
)

清除当前构图。如果此扩展程序不拥有活动的 IME,则此操作将失败。

PARAMETERS

  • parameters

    object

    • contextID

      number

      组合将被清除的上下文的 ID

    • callback

      function optional

      The callback parameter looks like:

      (success: boolean) => void

      • success

        boolean

commitText

chrome.input.ime.commitText(
  parameters: object,
  callback?: function,
)

将提供的文本提交到当前输入。

PARAMETERS

  • parameters

    object

    • contextID

      number

      文本将被提交的上下文的 ID

    • text

      string

      要提交的文本

  • callback

    function optional

    The callback parameter looks like:

    (success: boolean) => void

    • success

      boolean

deleteSurroundingText

chrome.input.ime.deleteSurroundingText(
  parameters: object,
  callback?: function,
)

删除插入符号周围的文本。

PARAMETERS

  • parameters

    object

    • contextID

      number

      周围文本将被删除的上下文的 ID。

    • engineID

      string

      接收事件的引擎 ID。

    • length

      number

      要删除的字符数

    • offset

      number

      从插入符号位置开始删除的偏移量。该值可以为负。

  • callback

    function optional

    The callback parameter looks like:

    () => void

hideInputView

chrome.input.ime.hideInputView()

隐藏输入视图窗口,由系统自动弹出。如果输入视图窗口已经隐藏,则此函数将不执行任何操作。

keyEventHandled

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

表示处理 onKeyEvent 接收到的按键事件。仅当 onKeyEvent 侦听器是异步时才应调用此方法。

PARAMETERS

  • requestId

    string

    已处理事件的请求 ID。这应该来自 keyEvent.requestId

  • response

    boolean

    如果击键被处理,则为真,否则为假

sendKeyEvents

chrome.input.ime.sendKeyEvents(
  parameters: object,
  callback?: function,
)

发送关键事件。预计此功能将由虚拟键盘使用。当用户按下虚拟键盘上的键时,此函数用于将该事件传播到系统。

PARAMETERS

  • parameters

    object

    • contextID

      number

      将发送键事件的上下文的 ID,或为零以将键事件发送到非输入字段。

    • keyData

      KeyboardEvent[]

      关键事件的数据。

  • callback

    function optional

    The callback parameter looks like:

    () => void

setAssistiveWindowButtonHighlighted

chrome.input.ime.setAssistiveWindowButtonHighlighted(
  parameters: object,
  callback?: function,
)

Chrome 86+

突出显示/取消突出显示辅助窗口中的按钮。

PARAMETERS

  • parameters

    object

    • announceString

      string optional

      供屏幕阅读器宣布的文本。

    • buttonID

      AssistiveWindowButton

      按钮标识

    • contextID

      number

      拥有辅助窗口的上下文的 ID。

    • highlighted

      boolean

      按钮是否应突出显示。

    • windowType

      "undo"

      按钮所属的窗口类型。

  • callback

    function optional

    The callback parameter looks like:

    () => void

setAssistiveWindowProperties

chrome.input.ime.setAssistiveWindowProperties(
  parameters: object,
  callback?: function,
)

Chrome 85+

显示/隐藏具有给定属性的辅助窗口。

PARAMETERS

  • parameters

    object

  • callback

    function optional

    The callback parameter looks like:

    (success: boolean) => void
    • success

      boolean

setCandidates

chrome.input.ime.setCandidates(
  parameters: object,
  callback?: function,
)

设置当前候选列表。如果此扩展程序不拥有活动的 IME,则此操作将失败

PARAMETERS

  • parameters

    object

    • candidates

      object[]

      在候选窗口中显示的候选列表

      • annotation

        string optional

        描述候选人的附加文字

      • candidate

        string

        候选人

      • id

        number

        候选人的ID

      • label

        string optional

        显示在候选旁边的短字符串,通常是快捷键或索引

      • parentId

        number optional

        在下面添加这些候选人的 id

      • usage

        object optional

        词的用法或详细描述。

        • body

          string

          详细描述的正文字符串。

        • title

          string

          细节描述的标题字符串。

  • contextID

    number

    拥有候选窗口的上下文的 ID。

  • callback

    function optional

    The callback parameter looks like:

    (success: boolean) => void
    • success

      boolean

setCandidateWindowProperties

chrome.input.ime.setCandidateWindowProperties(
  parameters: object,
  callback?: function,
)

设置候选窗口的属性。如果扩展程序不拥有活动的 IME,这将失败

PARAMETERS

  • parameters

    object

    • engineID

      string

      要设置属性的引擎 ID。

    • properties

      object

      • auxiliaryText

        string optional

        显示在候选窗口底部的文本。

      • auxiliaryTextVisible

        boolean optional

        True 显示辅助文本,false 隐藏它。

      • currentCandidateIndex

        number optional

        Chrome 84+

        当前选择的候选人在总候选人中的索引。

      • cursorVisible

        boolean optional

        True 显示光标,false 隐藏它。

      • pageSize

        number optional

        每页显示的候选数。

      • totalCandidates

        number optional

        Chrome 84+

        候选窗口的候选总数。

      • vertical

        boolean optional

        如果候选窗口应该垂直渲染,则为真,假为使其水平。

      • visible

        boolean optional

        True 显示候选窗口,false 隐藏它。

      • windowPosition

        WindowPosition optional

        在哪里显示候选窗口。

  • callback

    function optional

    The callback parameter looks like:

    (success: boolean) => void
    • success

      boolean

setComposition

chrome.input.ime.setComposition(
  parameters: object,
  callback?: function,
)

设置当前构图。如果此扩展程序不拥有活动的 IME,则此操作将失败。

PARAMETERS

  • parameters

    object

    • contextID

      number

      将设置合成文本的上下文的 ID

    • cursor

      number

      在光标文本中的位置。

    • segments

      object[] optional

      段列表及其相关类型。

      • end

        number

        在此段之后结束的字符的索引。

      • start

        number

        开始该段的字符索引

      • style

        UnderlineStyle

        修改此段的下划线类型。

  • selectionEnd

    number optional

    在文本中选择结束的位置。

  • selectionStart

    number optional

    在文本中选择开始的位置。

  • text

    string

    要设置的文本

  • callback

    function optional

    The callback parameter looks like:

    (success: boolean) => void
    • success

      boolean

setCursorPosition

chrome.input.ime.setCursorPosition(
  parameters: object,
  callback?: function,
)

设置光标在候选窗口中的位置。如果此扩展程序不拥有活动的 IME,则这是一个空操作。

PARAMETERS

  • parameters

    object

    • candidateID

      number

      要选择的候选人的 ID。

    • contextID

      number

      拥有候选窗口的上下文的 ID。

  • callback

    function optional

    The callback parameter looks like:

    (success: boolean) => void
    • success

      boolean

setMenuItems

chrome.input.ime.setMenuItems( parameters: MenuParameters, callback?: function, )

当此 IME 处于活动状态时,将提供的菜单项添加到语言菜单。

PARAMETERS

  • parameters

    MenuParameters

  • callback

    function optional

    The callback parameter looks like:

    () => void

updateMenuItems

chrome.input.ime.updateMenuItems( parameters: MenuParameters, callback?: function, )

更新指定的 MenuItems 的状态

PARAMETERS

  • parameters

    MenuParameters

  • callback

    function optional

    The callback parameter looks like:

    () => void

Events

onActivate

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

激活 IME 时发送此事件。它表示 IME 将接收 onKeyPress 事件。

PARAMETERS

  • callback

    function

    The callback parameter looks like:

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

onAssistiveWindowButtonClicked

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

Chrome 85+

当单击辅助窗口中的按钮时发送此事件。

PARAMETERS

onBlur

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

当焦点离开文本框时发送此事件。它被发送到所有监听此事件的扩展,并由用户启用。

PARAMETERS

  • callback

    function

    The callback parameter looks like:

    (contextID: number) => void
    • contextID

      number

onCandidateClicked

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

如果此扩展程序拥有活动的 IME,则发送此事件。

PARAMETERS

  • callback

    function

    The callback parameter looks like:

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

onDeactivated

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

当 IME 停用时发送此事件。它表示 IME 将不再接收 onKeyPress 事件。

PARAMETERS

  • callback

    function

    The callback parameter looks like:

    (engineID: string) => void
    • engineID

      string

onFocus

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

当焦点进入文本框时发送此事件。它被发送到所有监听此事件的扩展,并由用户启用。

PARAMETERS

onInputContextUpdate

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

当前 InputContext 的属性发生变化时发送此事件,例如类型。它被发送到所有监听此事件的扩展,并由用户启用。

PARAMETERS

onKeyEvent

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

从操作系统发送按键事件时触发。如果此扩展程序拥有活动的 IME,则该事件将发送到该扩展程序。如果事件被处理为假,则侦听器函数应返回真,否则为假。如果事件将被异步评估,则此函数必须返回 undefined 并且 IME 必须稍后使用结果调用 keyEventHandled()。

PARAMETERS

  • callback

    function

    The callback parameter looks like:

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

    • engineID

      string

    • keyData

      KeyboardEvent

    • requestId

      string

    • returns

      boolean | undefined

onMenuItemActivated

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

当用户选择菜单项时调用

PARAMETERS

  • callback

    function

    The callback parameter looks like:

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

      string

    • name

      string

onReset

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

当 chrome 终止正在进行的文本输入会话时发送此事件。

PARAMETERS

  • callback

    function

    The callback parameter looks like:

    (engineID: string) => void
    • engineID

      string

onSurroundingTextChanged

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

当插入符号周围的可编辑字符串更改或插入符号位置移动时调用。每个来回方向的文本长度限制为 100 个字符。

PARAMETERS

  • callback

    function

    The callback parameter looks like:

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

      string

    • surroundingInfo

      object

      • anchor

        number

        选择的开始位置。如果没有选择,此值指示插入符号位置。

      • focus

        number

        选择的结束位置。如果没有选择,此值指示插入符号位置。

      • offset

        number

        Chrome 46+

        text的偏移位置。由于text仅包含光标周围的文本子集,因此偏移量表示text第一个字符的绝对位置。

      • text

        string

        光标周围的文本。这只是输入字段中所有文本的一个子集。

By.一粒技术服务.

results matching ""

    No results matching ""