説明
chrome.input.ime API を使用して、Chrome OS 用のカスタム IME を実装します。これにより、拡張機能でキー操作の処理、構成の設定、候補ウィンドウの管理が可能になります。
権限
inputinput.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。
列挙型
"undo" 
 
"addToDictionary" 
 
AssistiveWindowProperties
補助ウィンドウのプロパティ。
プロパティ
- 
    announceString文字列 省略可 ChromeVox が読み上げる文字列。 
- 
    type"undo" 
 
- 
    表示ブール値 true に設定すると AssistiveWindow が表示され、false に設定すると非表示になります。 
AssistiveWindowType
補助ウィンドウの種類。
値
"undo" 
 
AutoCapitalizeType
テキスト フィールドの自動大文字化のタイプ。
列挙型
"characters" 
 
"words" 
 
"sentences" 
 
InputContext
入力コンテキストを記述します
プロパティ
- 
    autoCapitalizeChrome 69 以降テキスト フィールドの自動大文字化のタイプ。 
- 
    autoCompleteブール値 テキスト フィールドで自動補完が必要かどうか。 
- 
    autoCorrectブール値 テキスト フィールドで自動修正が必要かどうか。 
- 
    contextID数値 これは、テキスト フィールド オペレーションのターゲットを指定するために使用されます。この ID は onBlur が呼び出されるとすぐに無効になります。 
- 
    shouldDoLearningブール値 Chrome 68 以降テキスト フィールドに入力されたテキストをユーザーの入力候補の改善に使用するかどうか。 
- 
    spellCheckブール値 テキスト フィールドでスペルチェックが必要かどうか。 
- 
    typeこのテキスト フィールドで編集する値の型(テキスト、数値、URL など) 
InputContextType
このテキスト フィールドで編集する値の型(テキスト、数値、URL など)
列挙型
"text" 
 
"search" 
 
"tel" 
 
"url" 
 
"email" 
 
"number" 
 
"password" 
 
"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文字列 省略可 このキーイベントの送信者の拡張機能 ID。 
- 
    key文字列 押されているキーの値 
- 
    keyCodenumber 省略可 非推奨の HTML keyCode。押されたキーに関連付けられた変更されていない識別子を示す、システムと実装に依存する数値コードです。 
- 
    requestId文字列 省略可 (非推奨)リクエストの ID。代わりに onKeyEventイベントのrequestIdパラメータを使用してください。
- 
    shiftKeyブール値(省略可) SHIFT キーが押されているかどうか。 
- 
    typekeyup または keydown のいずれか。 
KeyboardEventType
列挙型
"keyup" 
 
"keydown" 
 
MenuItem
入力メソッドが言語メニューからユーザーとやり取りするために使用するメニュー項目。
プロパティ
- 
    ONブール値(省略可) この項目をチェック付きで描画する必要があることを示します。 
- 
    有効ブール値(省略可) このアイテムが有効であることを示します。 
- 
    id文字列 この MenuItem を参照するコールバックに渡される文字列。 
- 
    ラベル文字列 省略可 この項目のメニューに表示されるテキスト。 
- 
    スタイルMenuItemStyle 省略可 メニュー項目のタイプ。 
- 
    表示ブール値(省略可) このアイテムが表示されていることを示します。 
MenuItemStyle
メニュー項目のタイプ。区切り文字の間のラジオボタンはグループ化されているとみなされます。
列挙型
"check" 
 
"radio" 
 
"separator" 
 
MenuParameters
プロパティ
- 
    engineID文字列 使用するエンジンの ID。 
- 
    アイテムMenuItem[] 追加または更新する MenuItems。これらは、配列に存在する順序で追加されます。 
MouseButton
クリックされたマウスボタン。
列挙型
"left" 
 
"middle" 
 
"right" 
 
ScreenType
IME が有効になる画面のタイプ。
列挙型
"normal" 
 
"login" 
 
"lock" 
 
"secondary-login" 
 
UnderlineStyle
このセグメントを変更する下線の種類。
列挙型
"underline" 
 
"doubleUnderline" 
 
"noUnderline" 
 
WindowPosition
候補ウィンドウを表示する場所。「cursor」に設定すると、ウィンドウがカーソルを追跡します。「composition」に設定すると、ウィンドウはコンポジションの先頭にロックされます。
列挙型
"cursor" 
 
"composition" 
 
メソッド
clearComposition()
chrome.input.ime.clearComposition(
parameters: object,
): Promise<boolean>
現在のコンポジションをクリアします。この拡張機能がアクティブな IME を所有していない場合、この処理は失敗します。
パラメータ
- 
    パラメータオブジェクト - 
    contextID数値 コンポジションがクリアされるコンテキストの ID 
 
- 
    
戻り値
- 
            Promise<boolean> Chrome 111+
commitText()
chrome.input.ime.commitText(
parameters: object,
): Promise<boolean>
指定されたテキストを現在の入力に commit します。
パラメータ
- 
    パラメータオブジェクト - 
    contextID数値 テキストがコミットされるコンテキストの ID 
- 
    テキスト文字列 コミットするテキスト 
 
- 
    
戻り値
- 
            Promise<boolean> Chrome 111+
deleteSurroundingText()
chrome.input.ime.deleteSurroundingText(
parameters: object,
): Promise<void>
カーソルの周囲のテキストを削除します。
パラメータ
- 
    パラメータオブジェクト - 
    contextID数値 周囲のテキストが削除されるコンテキストの ID。 
- 
    engineID文字列 イベントを受信するエンジンの ID。 
- 
    長さ数値 削除する文字数 
- 
    offset数値 削除が開始されるカーソル位置からのオフセット。この値は負の値でもかまいません。 
 
- 
    
戻り値
- 
            Promise<void> Chrome 111+
hideInputView()
chrome.input.ime.hideInputView(): void
システムによって自動的にポップアップされる入力ビュー ウィンドウを非表示にします。入力ビュー ウィンドウがすでに非表示になっている場合、この関数は何も行いません。
keyEventHandled()
chrome.input.ime.keyEventHandled(
requestId: string,
response: boolean,
): void
onKeyEvent で受信したキーイベントが処理されたことを示します。これは、onKeyEvent リスナーが非同期の場合にのみ呼び出す必要があります。
パラメータ
- 
    requestId文字列 処理されたイベントのリクエスト ID。これは keyEvent.requestId から取得する必要があります 
- 
    レスポンスブール値 キーストロークが処理された場合は true、処理されなかった場合は false 
sendKeyEvents()
chrome.input.ime.sendKeyEvents(
parameters: object,
): Promise<void>
キーイベントを送信します。この関数は、仮想キーボードで使用されることが想定されています。ユーザーが仮想キーボードのキーを押すと、この関数を使用してそのイベントがシステムに伝播されます。
パラメータ
- 
    パラメータオブジェクト - 
    contextID数値 キーイベントが送信されるコンテキストの ID。入力フィールド以外にキーイベントを送信する場合は 0。 
- 
    keyDataキーイベントに関するデータ。 
 
- 
    
戻り値
- 
            Promise<void> Chrome 111+
setAssistiveWindowButtonHighlighted()
chrome.input.ime.setAssistiveWindowButtonHighlighted(
parameters: object,
): Promise<void>
補助ウィンドウのボタンをハイライト表示またはハイライト表示解除します。
パラメータ
- 
    パラメータオブジェクト - 
    announceString文字列 省略可 スクリーン リーダーで読み上げるテキスト。 
- 
    buttonIDボタンの ID 
- 
    contextID数値 補助ウィンドウを所有するコンテキストの ID。 
- 
    強調表示ブール値 ボタンをハイライト表示するかどうか。 
- 
    windowType"undo" 
 ボタンが属するウィンドウ タイプ。 
 
- 
    
戻り値
- 
            Promise<void> Chrome 111+
setAssistiveWindowProperties()
chrome.input.ime.setAssistiveWindowProperties(
parameters: object,
): Promise<boolean>
指定されたプロパティを持つ補助ウィンドウを表示または非表示にします。
パラメータ
- 
    パラメータオブジェクト - 
    contextID数値 補助ウィンドウを所有するコンテキストの ID。 
- 
    補助ウィンドウのプロパティ。 
 
- 
    
戻り値
- 
            Promise<boolean> Chrome 111+
setCandidates()
chrome.input.ime.setCandidates(
parameters: object,
): Promise<boolean>
現在の候補リストを設定します。この拡張機能がアクティブな IME を所有していない場合、この処理は失敗します。
パラメータ
- 
    パラメータオブジェクト - 
    候補者object[] 候補ウィンドウに表示する候補のリスト - 
    アノテーション文字列 省略可 候補者を説明する追加のテキスト 
- 
    候補文字列 候補者 
- 
    id数値 候補者の ID 
- 
    ラベル文字列 省略可 候補の横に表示される短い文字列(多くの場合、ショートカット キーまたはインデックス) 
- 
    parentIdnumber 省略可 これらの候補を追加する ID 
- 
    用途オブジェクト 省略可 単語の使用方法や詳細な説明。 - 
    body文字列 詳細説明の本文文字列。 
- 
    title文字列 詳細説明のタイトル文字列。 
 
- 
    
 
- 
    
- 
    contextID数値 候補ウィンドウを所有するコンテキストの ID。 
 
- 
    
戻り値
- 
            Promise<boolean> Chrome 111+
setCandidateWindowProperties()
chrome.input.ime.setCandidateWindowProperties(
parameters: object,
): Promise<boolean>
候補ウィンドウのプロパティを設定します。拡張機能がアクティブな IME を所有していない場合、この処理は失敗します。
パラメータ
- 
    パラメータオブジェクト - 
    engineID文字列 プロパティを設定するエンジンの ID。 
- 
    プロパティオブジェクト - 
    auxiliaryText文字列 省略可 候補ウィンドウの下部に表示されるテキスト。 
- 
    auxiliaryTextVisibleブール値(省略可) 補助テキストを表示する場合は true、非表示にする場合は false。 
- 
    currentCandidateIndexnumber 省略可 Chrome 84 以降候補者の総数に対する、現在選択されている候補者のインデックス。 
- 
    cursorVisibleブール値(省略可) カーソルを表示する場合は true、非表示にする場合は false。 
- 
    pageSizenumber 省略可 1 ページに表示する候補の数。 
- 
    totalCandidatesnumber 省略可 Chrome 84 以降候補ウィンドウの候補の合計数。 
- 
    カテゴリブール値(省略可) 候補ウィンドウを縦向きでレンダリングする場合は true、横向きにする場合は false。 
- 
    表示ブール値(省略可) 候補ウィンドウを表示する場合は true、非表示にする場合は false。 
- 
    windowPositionWindowPosition 省略可 候補ウィンドウを表示する場所。 
 
- 
    
 
- 
    
戻り値
- 
            Promise<boolean> Chrome 111+
setComposition()
chrome.input.ime.setComposition(
parameters: object,
): Promise<boolean>
現在のコンポジションを設定します。この拡張機能がアクティブな IME を所有していない場合、この処理は失敗します。
パラメータ
- 
    パラメータオブジェクト - 
    contextID数値 楽曲のテキストが設定されるコンテキストの ID 
- 
    cursor数値 テキスト内のカーソルの位置。 
- 
    セグメントobject[] 省略可 セグメントとその関連タイプのリスト。 - 
    end数値 このセグメントの終了位置となる文字のインデックス。 
- 
    start数値 このセグメントの開始文字のインデックス 
- 
    スタイルこのセグメントを変更する下線の種類。 
 
- 
    
- 
    selectionEndnumber 省略可 選択が終了するテキスト内の位置。 
- 
    selectionStartnumber 省略可 選択が開始されるテキスト内の位置。 
- 
    テキスト文字列 設定するテキスト 
 
- 
    
戻り値
- 
            Promise<boolean> Chrome 111+
setCursorPosition()
chrome.input.ime.setCursorPosition(
parameters: object,
): Promise<boolean>
候補ウィンドウ内のカーソルの位置を設定します。この拡張機能がアクティブな IME を所有していない場合、これは no-op です。
パラメータ
- 
    パラメータオブジェクト - 
    candidateID数値 選択する候補の ID。 
- 
    contextID数値 候補ウィンドウを所有するコンテキストの ID。 
 
- 
    
戻り値
- 
            Promise<boolean> Chrome 111+
setMenuItems()
chrome.input.ime.setMenuItems(
parameters: MenuParameters,
): Promise<void>
この IME がアクティブなときに、指定されたメニュー項目を言語メニューに追加します。
パラメータ
- 
    パラメータ
戻り値
- 
            Promise<void> Chrome 111+
updateMenuItems()
chrome.input.ime.updateMenuItems(
parameters: MenuParameters,
): Promise<void>
指定された MenuItems の状態を更新します
パラメータ
- 
    パラメータ
戻り値
- 
            Promise<void> Chrome 111+
イベント
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 を返す必要があります。イベントが非同期で評価される場合、この関数は undefined を返す必要があり、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にはカーソル周辺のテキストのサブセットのみが含まれるため、オフセットはtextの最初の文字の絶対位置を示します。
- 
    テキスト文字列 カーソルの周囲のテキスト。これは、入力フィールド内のすべてのテキストのサブセットにすぎません。 
 
- 
    
 
-