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
Methods
Events
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
Chrome 69+
文本字段的自动大写类型。
autoComplete
boolean
文本字段是否需要自动完成。
autoCorrect
boolean
文本字段是否需要自动更正。
contextID
number
这用于指定文本字段操作的目标。一旦 onBlur 被调用,这个 ID 就会失效。
shouldDoLearning
boolean
Chrome 68+
是否应使用输入到文本字段中的文本来改进用户的键入建议。
spellCheck
boolean
文本字段是否需要拼写检查。
type
此文本字段编辑的值类型(文本、数字、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
keyup 或 keydown 之一。
KeyboardEventType
Chrome 44+
TYPE
"keyup", or "keydown"
MenuItem
输入法用来从语言菜单与用户交互的菜单项。
PROPERTIES
checked
boolean optional
表示该项目应该用支票绘制。
enabled
boolean optional
表示该项目已启用。
id
string
将传递给引用此 MenuItem 的回调的字符串。
label
string optional
此项目的菜单中显示的文本。
style
MenuItemStyle optional
菜单项的类型。
visible
boolean optional
表示该项目可见。
MenuItemStyle
Chrome 44+
菜单项的类型。分隔符之间的单选按钮被认为是分组的。
TYPE
"check", "radio", or "separator"
MenuParameters
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
关键事件的数据。
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
按钮标识
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
contextID
number
拥有辅助窗口的上下文的 ID。
properties
辅助窗口的属性。
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
修改此段的下划线类型。
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
callback
function optional
The
callback
parameter looks like:() => void
updateMenuItems
chrome.input.ime.updateMenuItems( parameters: MenuParameters, callback?: function, )
更新指定的 MenuItems 的状态
PARAMETERS
parameters
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
engineID
string
screen
onAssistiveWindowButtonClicked
chrome.input.ime.onAssistiveWindowButtonClicked.addListener(
callback: function,
)
Chrome 85+
当单击辅助窗口中的按钮时发送此事件。
PARAMETERS
callback
function
The
callback
parameter looks like:(details: object) => void
details
object
buttonID
单击的按钮的 ID。
windowType
辅助窗口的类型。
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
engineID
string
candidateID
number
button
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
callback
function
The
callback
parameter looks like:(context: InputContext) => void
context
onInputContextUpdate
chrome.input.ime.onInputContextUpdate.addListener( callback: function, )
当前 InputContext 的属性发生变化时发送此事件,例如类型。它被发送到所有监听此事件的扩展,并由用户启用。
PARAMETERS
callback
function
The
callback
parameter looks like:(context: InputContext) => void
context
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
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.一粒技术服务.