chrome.input.ime

説明

chrome.input.ime API を使用して、ChromeOS のカスタム IME を実装します。これにより、拡張機能でキー入力の処理、構成の設定、候補ウィンドウの管理を行うことができます。

権限

input

input.ime API を使用するには、拡張機能のマニフェストで「input」権限を宣言する必要があります。次に例を示します。

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

可用性

ChromeOS のみ

次のコードは、入力された文字を大文字に変換する 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

Chrome 85 以降

アシスト ウィンドウ内のボタンの ID。

列挙型

"addToDictionary"

AssistiveWindowProperties

Chrome 85 以降

アシスト ウィンドウのプロパティ。

プロパティ

  • announceString

    文字列(省略可)

    ChromeVox の読み上げ用の文字列。

  • type

  • 表示

    boolean

    AssistiveWindow を表示するには true を設定し、非表示にするには false に設定します。

AssistiveWindowType

Chrome 85 以降

アシスト ウィンドウの種類。

価値

AutoCapitalizeType

Chrome 69 以降

テキスト フィールドの自動大文字変換のタイプ。

列挙型

"sentences"

InputContext

入力コンテキストを記述します

プロパティ

  • autoCapitalize
    Chrome 69 以降

    テキスト フィールドの自動大文字変換のタイプ。

  • autoComplete

    boolean

    テキスト フィールドで予測入力を使用するかどうか。

  • autoCorrect

    boolean

    テキスト フィールドの自動修正が必要かどうか。

  • contextID

    数値

    テキスト フィールド操作のターゲットを指定するために使用されます。この ID は、onBlur が呼び出されるとすぐに無効になります。

  • shouldDoLearning

    boolean

    Chrome 68 以降

    テキスト フィールドに入力されたテキストを、入力候補の改善に使用するかどうか。

  • spellCheck

    boolean

    テキスト フィールドでスペルチェックを行うかどうか。

  • このテキスト フィールドが編集する値のタイプ(テキスト、数値、URL など)

InputContextType

Chrome 44 以降

このテキスト フィールドが編集する値のタイプ(テキスト、数値、URL など)

列挙型

"url"

"number"

"password"

"null"

KeyboardEvent

http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent をご覧ください。

プロパティ

  • altKey

    ブール値(省略可)

    Alt キーが押されているかどうか。

  • altgrKey

    ブール値(省略可)

    Chrome 79 以降

    ALTGR キーが押されているかどうか。

  • capsLock

    ブール値(省略可)

    CAPS_LOCK が有効かどうか。

  • コード

    string

    押されている物理キーの値。この値は、現在のキーボード レイアウトや修飾子の状態の影響を受けません。

  • ctrlKey

    ブール値(省略可)

    CTRL キーが押されているかどうか。

  • extensionId

    文字列(省略可)

    このキーイベントの送信者の拡張機能 ID。

  • key

    string

    押されているキーの値

  • keyCode

    数値(省略可)

    非推奨の HTML keyCode は、システムと実装に依存する数値コードで、押されたキーに関連付けられた変更されていない識別子を示します。

  • requestId

    文字列(省略可)

    (非推奨)リクエストの ID。代わりに onKeyEvent イベントの requestId パラメータを使用してください。

  • shiftKey

    ブール値(省略可)

    Shift キーが押されているかどうか。

  • keyup または keydown のいずれか。

KeyboardEventType

Chrome 44 以降

列挙型

"keyup"

"keydown"

MenuItem

言語メニューからユーザーとやり取りするために入力方法で使用されるメニュー項目。

プロパティ

  • ON

    ブール値(省略可)

    このアイテムがチェックされて描画されることを示します。

  • 有効

    ブール値(省略可)

    このアイテムが有効であることを示します。

  • id

    string

    この MenuItem を参照するコールバックに渡される文字列。

  • ラベル

    文字列(省略可)

    このアイテムのメニューに表示されるテキスト。

  • スタイル

    MenuItemStyle オプション

    メニュー項目のタイプ。

  • 表示

    ブール値(省略可)

    このアイテムが表示されていることを示します。

MenuItemStyle

Chrome 44 以降

メニュー項目のタイプ。セパレータの間のラジオボタンはグループと見なされます。

列挙型

"check"

"radio"

"separator"

MenuParameters

Chrome 88 以降

プロパティ

  • engineID

    string

    使用するエンジンの ID。

  • items

    追加または更新する MenuItem。これらは配列に存在する順に追加されます。

MouseButton

Chrome 44 以降

クリックされたマウスボタン。

列挙型

"right"

ScreenType

Chrome 44 以降

IME を有効にする画面タイプ。

列挙型

"login"

"secondary-login"

UnderlineStyle

Chrome 44 以降

このセグメントを変更する下線のタイプ。

列挙型

"underline"

"doubleUnderline"

"noUnderline"

WindowPosition

Chrome 44 以降

候補ウィンドウを表示する場所。「cursor」に設定すると、ウィンドウはカーソルに従います。「composition」に設定すると、ウィンドウはコンポジションの先頭にロックされます。

列挙型

"composition"

メソッド

clearComposition()

Promise
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()

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

指定されたテキストを現在の入力に commit します。

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

      テキストが commit されるコンテキストの ID

    • 指定しています

      string

      commit するテキスト

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (success: boolean) => void

    • success

      boolean

戻り値

  • Promise<boolean>

    Chrome 111 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性のためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise はコールバックに渡された型と同じ型で解決されます。

deleteSurroundingText()

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

キャレットを囲むテキストを削除します。

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

      周囲のテキストを削除するコンテキストの ID。

    • engineID

      string

      イベントを受け取るエンジンの 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

    string

    処理されたイベントのリクエスト ID。keyEvent.requestId から取得する必要があります。

  • レスポンス

    boolean

    キー入力が処理された場合は true、そうでない場合は false

sendKeyEvents()

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

キーイベントを送信します。この関数は仮想キーボードで使用することが想定されています。ユーザーが仮想キーボードのキーを押すと、この関数を使用してそのイベントをシステムに伝えます。

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

      キーイベントが送信されるコンテキストの ID。入力以外のフィールドにキーイベントを送信する場合はゼロ。

    • keyData

      キーイベントに関するデータ。

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 111 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性のためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise はコールバックに渡された型と同じ型で解決されます。

setAssistiveWindowButtonHighlighted()

Promise Chrome 86 以降
chrome.input.ime.setAssistiveWindowButtonHighlighted(
  parameters: object,
  callback?: function,
)

アシスト ウィンドウ内のボタンをハイライト表示するか、ハイライト表示を解除します。

パラメータ

  • パラメータ

    オブジェクト

    • announceString

      文字列(省略可)

      読み上げるスクリーン リーダーのテキスト。

    • ボタンの ID

    • contextID

      数値

      支援ウィンドウを所有するコンテキストの ID。

    • 強調表示

      boolean

      ボタンをハイライト表示するかどうか。

    • windowType

      ボタンが属するウィンドウ タイプ。

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 111 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性のためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise はコールバックに渡された型と同じ型で解決されます。

setAssistiveWindowProperties()

Promise Chrome 85 以降
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()

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

現在の候補リストを設定します。この拡張機能が有効な IME を所有していない場合、この処理は失敗します。

パラメータ

  • パラメータ

    オブジェクト

    • 候補

      オブジェクト []

      候補者ウィンドウに表示する候補者のリスト

      • annotation

        文字列(省略可)

        候補者を説明する追加のテキスト

      • 候補

        string

        受験者

      • id

        数値

        受験者の ID

      • ラベル

        文字列(省略可)

        候補の横に表示される短い文字列(通常はショートカット キーまたはインデックス)

      • parentId

        数値(省略可)

        これらの候補を追加する ID

      • usage

        オブジェクト(省略可)

        単語の用法や詳細説明。

        • body

          string

          詳細説明の本文文字列。

        • 役職

          string

          詳細の説明のタイトル文字列。

    • contextID

      数値

      候補ウィンドウを所有するコンテキストの ID。

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (success: boolean) => void

    • success

      boolean

戻り値

  • Promise<boolean>

    Chrome 111 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性のためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise はコールバックに渡された型と同じ型で解決されます。

setCandidateWindowProperties()

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

候補ウィンドウのプロパティを設定します。拡張機能が有効な IME を所有していない場合、この処理は失敗します。

パラメータ

  • パラメータ

    オブジェクト

    • engineID

      string

      プロパティを設定するエンジンの ID。

    • プロパティ

      オブジェクト

      • auxiliaryText

        文字列(省略可)

        候補ウィンドウの下部に表示されるテキスト。

      • auxiliaryTextVisible

        ブール値(省略可)

        補助テキストを表示する場合は true、非表示にする場合は false です。

      • currentCandidateIndex

        数値(省略可)

        Chrome 84 以降

        すべての候補のうち、現在選択されている候補のインデックス。

      • cursorVisible

        ブール値(省略可)

        カーソルを表示する場合は true、非表示にする場合は false です。

      • pageSize

        数値(省略可)

        ページごとに表示する候補の数。

      • totalCandidates

        数値(省略可)

        Chrome 84 以降

        候補ウィンドウの候補の総数。

      • カテゴリ

        ブール値(省略可)

        候補ウィンドウを垂直方向にレンダリングする場合は true、水平にレンダリングする場合は false に設定します。

      • 表示

        ブール値(省略可)

        [Candidate] ウィンドウを表示する場合は true、非表示の場合は false。

      • windowPosition

        WindowPosition (省略可)

        候補ウィンドウを表示する場所。

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (success: boolean) => void

    • success

      boolean

戻り値

  • Promise<boolean>

    Chrome 111 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性のためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise はコールバックに渡された型と同じ型で解決されます。

setComposition()

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

現在のコンポジションを設定します。この拡張機能が有効な IME を所有していない場合、この処理は失敗します。

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

      コンポジション テキストが設定されるコンテキストの ID

    • cursor

      数値

      カーソルのテキスト内の位置。

    • セグメント

      オブジェクト [] 省略可

      セグメントとそれに関連付けられたタイプのリスト。

      • end

        数値

        このセグメントを終了する文字のインデックス。

      • スタート

        数値

        このセグメントを開始する文字のインデックス

      • スタイル

        このセグメントを変更する下線のタイプ。

    • selectionEnd

      数値(省略可)

      選択範囲が終了するテキスト内の位置。

    • selectionStart

      数値(省略可)

      選択範囲を開始するテキスト内の位置。

    • 指定しています

      string

      設定するテキスト

  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    (success: boolean) => void

    • success

      boolean

戻り値

  • Promise<boolean>

    Chrome 111 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性のためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise はコールバックに渡された型と同じ型で解決されます。

setCursorPosition()

Promise
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()

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

この IME がアクティブなときに、提供されたメニュー項目を言語メニューに追加します。

パラメータ

  • パラメータ
  • callback

    関数(省略可)

    callback パラメータは次のようになります。

    () => void

戻り値

  • Promise<void>

    Chrome 111 以降

    Promise は Manifest V3 以降でサポートされていますが、下位互換性のためにコールバックが用意されています。同じ関数呼び出しで両方を使用することはできません。Promise はコールバックに渡された型と同じ型で解決されます。

updateMenuItems()

Promise
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

onAssistiveWindowButtonClicked

Chrome 85 以降
chrome.input.ime.onAssistiveWindowButtonClicked.addListener(
  callback: function,
)

このイベントは、アシスト ウィンドウのボタンがクリックされたときに送信されます。

パラメータ

  • callback

    機能

    callback パラメータは次のようになります。

    (details: object) => void

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

      string

    • candidateID

      数値

    • ボタン

onDeactivated

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

このイベントは、IME が無効になると送信されます。これは、IME が onKey Press イベントを受け取らなくなることを通知します。

パラメータ

  • callback

    機能

    callback パラメータは次のようになります。

    (engineID: string) => void

    • engineID

      string

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

    • 戻り値

      ブール値 | 未定義

onMenuItemActivated

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

ユーザーがメニュー項目を選択したときに呼び出されます

パラメータ

  • callback

    機能

    callback パラメータは次のようになります。

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

    • engineID

      string

    • name

      string

onReset

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

このイベントは、進行中のテキスト入力セッションが Chrome で終了したときに送信されます。

パラメータ

  • callback

    機能

    callback パラメータは次のようになります。

    (engineID: string) => void

    • engineID

      string

onSurroundingTextChanged

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

キャレットを囲む編集可能な文字列が変更されたとき、またはキャレットの位置が移動されたときに呼び出されます。テキストの長さは、前後に 100 文字に制限されています。

パラメータ

  • callback

    機能

    callback パラメータは次のようになります。

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

    • engineID

      string

    • surroundingInfo

      オブジェクト

      • アンカー

        数値

        選択範囲の開始位置。この値は、選択されていない場合のキャレットの位置を示します。

      • ピント

        数値

        選択範囲の終了位置。この値は、選択されていない場合のキャレットの位置を示します。

      • offset

        数値

        Chrome 46 以降

        text のオフセット位置。text にはカーソルの周囲のテキストのサブセットのみが含まれるため、オフセットは text の最初の文字の絶対位置を示します。

      • 指定しています

        string

        カーソルの周りのテキスト。これは、入力フィールドのすべてのテキストのサブセットにすぎません。