説明
chrome.input.ime
API を使用して、Chrome OS のカスタム IME を実装します。これにより、拡張機能でキー入力の処理、構成の設定、候補ウィンドウの管理が可能になります。
権限
input
input.ime API を使用するには、拡張機能のマニフェストで「input」権限を宣言する必要があります。次に例を示します。
{
"name": "My extension",
...
"permissions": [
"input"
],
...
}
例
次のコードは、入力された文字を大文字に変換する 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;
}
}
);
型
AssistiveWindowButton
アシスト ウィンドウのボタンの ID。
Enum
AssistiveWindowProperties
アシスト ウィンドウのプロパティ。
プロパティ
-
announceString
string(省略可)
ChromeVox が読み上げる文字列。
-
タイプ
-
表示
boolean
AssistiveWindow を表示するには true を設定し、非表示にするには false に設定します。
AssistiveWindowType
アシスト ウィンドウのタイプ。
値
AutoCapitalizeType
テキスト フィールドの自動大文字変換タイプ。
Enum
"words"
"sentences"
InputContext
入力コンテキストを記述する
プロパティ
-
autoCapitalizeChrome 69 以降
テキスト フィールドの自動大文字変換タイプ。
-
autoComplete
boolean
テキスト フィールドでオートコンプリートを使用するかどうか。
-
autoCorrect
boolean
テキスト フィールドで自動修正が必要かどうか。
-
contextID
数値
テキスト フィールド操作のターゲットを指定するために使用します。この ID は、onBlur が呼び出されるとすぐに無効になります。
-
shouldDoLearning
boolean
Chrome 68 以降テキスト フィールドに入力されたテキストを、ユーザーへの入力候補の精度を向上させるために使用するかどうかを指定します。
-
spellCheck
boolean
テキスト フィールドでスペルチェックするかどうか。
-
タイプ
このテキスト フィールドで編集される値のタイプ(テキスト、数値、URL など)
InputContextType
このテキスト フィールドで編集される値のタイプ(テキスト、数値、URL など)
Enum
"url"
"number"
"null"
KeyboardEvent
参照: http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
プロパティ
-
altKey
ブール値(省略可)
Alt キーが押されているかどうか。
-
altgrKey
ブール値(省略可)
Chrome 79 以降ALTGR キーが押されているかどうかを表します。
-
capsLock
ブール値(省略可)
CAPS_LOCK が有効かどうかを指定します。
-
コード
文字列
押されている物理キーの値。この値は、現在のキーボード レイアウトや修飾子の状態の影響を受けません。
-
ctrlKey
ブール値(省略可)
Ctrl キーが押されているかどうか。
-
extensionId
string(省略可)
このキーイベント送信者の拡張機能 ID。
-
key
文字列
押されているキーの値
-
keyCode
number(省略可)
非推奨の HTML keyCode。システムと実装に依存する数値コードで、押されたキーに関連付けられた未変更の識別子を示します。
-
requestId
string(省略可)
(非推奨)リクエストの ID。代わりに、
onKeyEvent
イベントのrequestId
パラメータを使用してください。 -
shiftKey
ブール値(省略可)
Shift キーが押されているかどうか。
-
keyup または keydown のいずれか。
KeyboardEventType
Enum
MenuItem
言語メニューからユーザーとやり取りするために入力方法で使用されるメニュー項目。
プロパティ
-
オン
ブール値(省略可)
このアイテムがチェック付きで描画されることを示します。
-
有効
ブール値(省略可)
このアイテムが有効であることを示します。
-
id
文字列
この MenuItem を参照するコールバックに渡される文字列。
-
ラベル
string(省略可)
このアイテムのメニューに表示されるテキスト。
-
スタイル
MenuItemStyle 省略可
メニュー項目のタイプ。
-
表示
ブール値(省略可)
このアイテムが表示されることを示します。
MenuItemStyle
メニュー項目のタイプ。セパレータ間にあるラジオボタンはグループ化されています。
Enum
"check"
"separator"
MenuParameters
プロパティ
-
engineID
文字列
使用するエンジンの ID。
-
items
MenuItem[]
追加または更新する MenuItem。これらは、配列に存在する順序で追加されます。
MouseButton
クリックされたマウスボタン。
Enum
"middle"
ScreenType
IME が有効化されている画面タイプ。
Enum
"normal"
"login"
"secondary-login"
UnderlineStyle
このセグメントを変更する下線の種類。
Enum
"underline"
"doubleUnderline"
"noUnderline"
WindowPosition
受験者ウィンドウを表示する場所。「cursor」に設定すると、ウィンドウはカーソルに従います。「composition」に設定した場合、ウィンドウはコンポジションの先頭にロックされます。
Enum
"composition"
Methods
clearComposition()
chrome.input.ime.clearComposition(
parameters: object,
callback?: function,
)
現在の合成を消去します。この拡張機能がアクティブな IME を所有していない場合、これは失敗します。
パラメータ
-
パラメータ
オブジェクト
-
contextID
数値
コンポジションがクリアされるコンテキストの ID
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。(success: boolean)=>void
-
success
boolean
-
戻り値
-
Promise<boolean>
Chrome 111 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
commitText()
chrome.input.ime.commitText(
parameters: object,
callback?: function,
)
指定されたテキストを現在の入力に commit します。
パラメータ
-
パラメータ
オブジェクト
-
contextID
数値
テキストが commit されるコンテキストの ID
-
指定しています
文字列
commit するテキスト
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。(success: boolean)=>void
-
success
boolean
-
戻り値
-
Promise<boolean>
Chrome 111 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
deleteSurroundingText()
chrome.input.ime.deleteSurroundingText(
parameters: object,
callback?: function,
)
キャレットの周囲のテキストを削除します。
パラメータ
-
パラメータ
オブジェクト
-
contextID
数値
周囲のテキストが削除されるコンテキストの ID。
-
engineID
文字列
イベントを受信するエンジンの ID。
-
length
数値
削除する文字数
-
offset
数値
削除を開始するキャレット位置からのオフセット。この値は負の値でもかまいません。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。()=>void
戻り値
-
Promise<void>
Chrome 111 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
hideInputView()
chrome.input.ime.hideInputView()
システムによって自動的にポップアップ表示される入力ビュー ウィンドウを非表示にします。入力ビュー ウィンドウがすでに非表示になっている場合、この関数は何もしません。
keyEventHandled()
chrome.input.ime.keyEventHandled(
requestId: string,
response: boolean,
)
onKeyEvent が受信したキーイベントが処理されることを示します。onKeyEvent リスナーが非同期の場合にのみ呼び出す必要があります。
パラメータ
-
requestId
文字列
処理されたイベントのリクエスト ID。keyEvent.requestId から取得します。
-
レスポンス
boolean
キー入力が処理された場合は true、処理されなかった場合は false
sendKeyEvents()
chrome.input.ime.sendKeyEvents(
parameters: object,
callback?: function,
)
キーイベントを送信します。この関数は仮想キーボードで使用することが想定されています。ユーザーが仮想キーボードのキーが押されると、この関数を使用してそのイベントがシステムに伝播されます。
パラメータ
-
パラメータ
オブジェクト
-
contextID
数値
キーイベントが送信されるコンテキストの ID。非入力フィールドにキーイベントを送信する場合はゼロ。
-
keyData
キーイベントに関するデータ。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。()=>void
戻り値
-
Promise<void>
Chrome 111 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
setAssistiveWindowButtonHighlighted()
chrome.input.ime.setAssistiveWindowButtonHighlighted(
parameters: object,
callback?: function,
)
アシスト ウィンドウでボタンをハイライト表示またはハイライト表示解除します。
パラメータ
-
パラメータ
オブジェクト
-
announceString
string(省略可)
スクリーン リーダーが読み上げるテキスト。
-
buttonID
ボタンの ID
-
contextID
数値
アシスト ウィンドウを所有するコンテキストの ID。
-
強調表示
boolean
ボタンをハイライト表示するかどうか。
-
windowType
ボタンが属するウィンドウ タイプ。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。()=>void
戻り値
-
Promise<void>
Chrome 111 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
setAssistiveWindowProperties()
chrome.input.ime.setAssistiveWindowProperties(
parameters: object,
callback?: function,
)
指定されたプロパティのアシスト ウィンドウを表示または非表示にします。
パラメータ
-
パラメータ
オブジェクト
-
contextID
数値
アシスト ウィンドウを所有するコンテキストの ID。
-
アシスト ウィンドウのプロパティ。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。(success: boolean)=>void
-
success
boolean
-
戻り値
-
Promise<boolean>
Chrome 111 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
setCandidates()
chrome.input.ime.setCandidates(
parameters: object,
callback?: function,
)
現在の候補リストを設定します。この拡張機能がアクティブな IME を所有していない場合、これは失敗します。
パラメータ
-
パラメータ
オブジェクト
-
候補者
オブジェクト []
受験者ウィンドウに表示する受験者のリスト
-
annotation
string(省略可)
候補者を説明する追加のテキスト
-
候補
文字列
候補者
-
id
数値
受験者の ID
-
ラベル
string(省略可)
受験者の横に表示される短い文字列(ショートカット キーまたはインデックス)
-
parentId
number(省略可)
これらの候補を追加する ID
-
usage
オブジェクト 省略可
単語の用法や詳細の説明。
-
body
文字列
詳細説明の本文文字列。
-
title
文字列
詳細説明のタイトル文字列。
-
-
-
contextID
数値
候補ウィンドウを所有するコンテキストの ID。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。(success: boolean)=>void
-
success
boolean
-
戻り値
-
Promise<boolean>
Chrome 111 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
setCandidateWindowProperties()
chrome.input.ime.setCandidateWindowProperties(
parameters: object,
callback?: function,
)
候補ウィンドウのプロパティを設定します。拡張機能がアクティブな IME を所有していない場合、これは失敗します。
パラメータ
-
パラメータ
オブジェクト
-
engineID
文字列
プロパティを設定するエンジンの ID。
-
プロパティ
オブジェクト
-
auxiliaryText
string(省略可)
受験者ウィンドウの下部に表示されるテキスト。
-
auxiliaryTextVisible
ブール値(省略可)
補助テキストを表示する場合は true を、非表示にする場合は false を指定します。
-
currentCandidateIndex
number(省略可)
Chrome 84 以降全候補のうち、現在選択されている候補のインデックス。
-
cursorVisible
ブール値(省略可)
カーソルを表示する場合は true、非表示にするには false に設定します。
-
pageSize
number(省略可)
ページごとに表示する受験者の数。
-
totalCandidates
number(省略可)
Chrome 84 以降候補ウィンドウの候補の合計数。
-
カテゴリ
ブール値(省略可)
候補ウィンドウを垂直方向にレンダリングする場合は true、水平方向にレンダリングする場合は false に設定します。
-
表示
ブール値(省略可)
[候補] ウィンドウを表示する場合は true、非表示にする場合は false に設定します。
-
windowPosition
WindowPosition 省略可
受験者ウィンドウを表示する場所。
-
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。(success: boolean)=>void
-
success
boolean
-
戻り値
-
Promise<boolean>
Chrome 111 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
setComposition()
chrome.input.ime.setComposition(
parameters: object,
callback?: function,
)
現在の合成を設定します。この拡張機能がアクティブな IME を所有していない場合、これは失敗します。
パラメータ
-
パラメータ
オブジェクト
-
contextID
数値
構成テキストが設定されるコンテキストの ID
-
cursor
数値
カーソルのテキスト内の位置。
-
セグメント
オブジェクト [] 省略可
セグメントとそれに関連するタイプのリスト。
-
end
数値
このセグメントを終了する文字のインデックス。
-
開始
数値
このセグメントを開始する文字のインデックス
-
スタイル
このセグメントを変更する下線の種類。
-
-
selectionEnd
number(省略可)
選択を終了するテキスト内の位置。
-
selectionStart
number(省略可)
選択を開始するテキスト内の位置。
-
指定しています
文字列
設定するテキスト
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。(success: boolean)=>void
-
success
boolean
-
戻り値
-
Promise<boolean>
Chrome 111 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
setCursorPosition()
chrome.input.ime.setCursorPosition(
parameters: object,
callback?: function,
)
候補ウィンドウ内のカーソルの位置を設定します。この拡張機能がアクティブな IME を所有していない場合、これは何もしません。
パラメータ
-
パラメータ
オブジェクト
-
candidateID
数値
選択する受験者の ID。
-
contextID
数値
候補ウィンドウを所有するコンテキストの ID。
-
-
callback
関数(省略可)
callback
パラメータは次のようになります。(success: boolean)=>void
-
success
boolean
-
戻り値
-
Promise<boolean>
Chrome 111 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
setMenuItems()
chrome.input.ime.setMenuItems(
parameters: MenuParameters,
callback?: function,
)
この IME がアクティブなときに、提供されたメニュー項目を言語メニューに追加します。
パラメータ
-
パラメータ
-
callback
関数(省略可)
callback
パラメータは次のようになります。()=>void
戻り値
-
Promise<void>
Chrome 111 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
updateMenuItems()
chrome.input.ime.updateMenuItems(
parameters: MenuParameters,
callback?: function,
)
指定された MenuItem の状態を更新します。
パラメータ
-
パラメータ
-
callback
関数(省略可)
callback
パラメータは次のようになります。()=>void
戻り値
-
Promise<void>
Chrome 111 以降Promise は Manifest V3 以降でサポートされていますが、コールバックは下位互換性のために提供されています。同じ関数呼び出しで両方を使用することはできません。Promise は、コールバックに渡されたのと同じ型で解決されます。
イベント
onActivate
chrome.input.ime.onActivate.addListener(
callback: function,
)
このイベントは、IME が有効になると送信されます。IME が onKeyPress イベントを受信することを通知します。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(engineID: string,screen: ScreenType)=>void
-
engineID
文字列
-
画面
-
onAssistiveWindowButtonClicked
chrome.input.ime.onAssistiveWindowButtonClicked.addListener(
callback: function,
)
このイベントは、アシスト ウィンドウのボタンがクリックされると送信されます。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(details: object)=>void
-
詳細
オブジェクト
-
buttonID
クリックされたボタンの ID。
-
windowType
アシスト ウィンドウのタイプ。
-
-
onBlur
chrome.input.ime.onBlur.addListener(
callback: function,
)
このイベントは、フォーカスがテキスト ボックスから離れると送信されます。このイベントをリッスンしているすべての拡張機能に送信され、ユーザーが有効にした。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(contextID: number)=>void
-
contextID
数値
-
onCandidateClicked
chrome.input.ime.onCandidateClicked.addListener(
callback: function,
)
このイベントは、この拡張機能がアクティブな IME を所有している場合に送信されます。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(engineID: string,candidateID: number,button: MouseButton)=>void
-
engineID
文字列
-
candidateID
数値
-
ボタン
-
onDeactivated
chrome.input.ime.onDeactivated.addListener(
callback: function,
)
このイベントは、IME が無効になると送信されます。IME が onKeyPress イベントを受信しなくなることを通知します。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(engineID: string)=>void
-
engineID
文字列
-
onFocus
chrome.input.ime.onFocus.addListener(
callback: function,
)
フォーカスがテキスト ボックスに入ると、このイベントが送信されます。このイベントをリッスンしているすべての拡張機能に送信され、ユーザーが有効にした。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(context: InputContext)=>void
-
コンテキスト
-
onInputContextUpdate
chrome.input.ime.onInputContextUpdate.addListener(
callback: function,
)
このイベントは、現在の InputContext のプロパティ(タイプなど)が変更されると送信されます。このイベントをリッスンしているすべての拡張機能に送信され、ユーザーが有効にした。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(context: InputContext)=>void
-
コンテキスト
-
onKeyEvent
chrome.input.ime.onKeyEvent.addListener(
callback: function,
)
オペレーティング システムからキーイベントが送信されると呼び出されます。この拡張機能が有効な IME を所有している場合、イベントは拡張機能に送信されます。イベントが処理された場合、リスナー関数は true を返し、そうでない場合は false を返します。イベントを非同期で評価する場合、この関数は未定義を返す必要があり、IME は後で結果を使って keyEventHandled() を呼び出す必要があります。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(engineID: string,keyData: KeyboardEvent,requestId: string)=>boolean|undefined
-
engineID
文字列
-
keyData
-
requestId
文字列
-
戻り値
boolean|undefined
-
onMenuItemActivated
chrome.input.ime.onMenuItemActivated.addListener(
callback: function,
)
ユーザーがメニュー項目を選択したときに呼び出されます。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(engineID: string,name: string)=>void
-
engineID
文字列
-
name
文字列
-
onReset
chrome.input.ime.onReset.addListener(
callback: function,
)
このイベントは、進行中のテキスト入力セッションを Chrome が終了すると送信されます。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(engineID: string)=>void
-
engineID
文字列
-
onSurroundingTextChanged
chrome.input.ime.onSurroundingTextChanged.addListener(
callback: function,
)
キャレットを囲む編集可能な文字列が変更された場合、またはキャレットの位置が移動されたときに呼び出されます。テキストの長さは、往復で 100 文字までです。
パラメータ
-
callback
機能
callback
パラメータは次のようになります。(engineID: string,surroundingInfo: object)=>void
-
engineID
文字列
-
surroundingInfo
オブジェクト
-
アンカー
数値
選択範囲の開始位置。この値は、選択されていない場合にキャレット位置を示します。
-
ピント
数値
選択範囲の終了位置。この値は、選択されていない場合にキャレット位置を示します。
-
offset
数値
Chrome 46 以降text
のオフセット位置。text
にはカーソルの周囲のテキストのサブセットのみが含まれるため、offset はtext
の最初の文字の絶対位置を示します。 -
指定しています
文字列
カーソルの周囲のテキスト。これは、入力フィールドのすべてのテキストのサブセットにすぎません。
-
-