chrome.input.ime

説明

chrome.input.ime API を使用して、Chrome OS 用のカスタム 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。

列挙型

"undo"

"addToDictionary"

AssistiveWindowProperties

Chrome 85 以降

補助ウィンドウのプロパティ。

プロパティ

  • announceString

    文字列 省略可

    ChromeVox が読み上げる文字列。

  • type

    "undo"

  • 表示

    ブール値

    true に設定すると AssistiveWindow が表示され、false に設定すると非表示になります。

AssistiveWindowType

Chrome 85 以降

補助ウィンドウの種類。

"undo"

AutoCapitalizeType

Chrome 69 以降

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

列挙型

"characters"

"words"

"sentences"

InputContext

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

プロパティ

  • autoCapitalize
    Chrome 69 以降

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

  • autoComplete

    ブール値

    テキスト フィールドで自動補完が必要かどうか。

  • autoCorrect

    ブール値

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

  • contextID

    数値

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

  • shouldDoLearning

    ブール値

    Chrome 68 以降

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

  • spellCheck

    ブール値

    テキスト フィールドでスペルチェックが必要かどうか。

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

InputContextType

Chrome 44 以降

このテキスト フィールドで編集する値の型(テキスト、数値、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

    文字列

    押されているキーの値

  • keyCode

    number 省略可

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

  • requestId

    文字列 省略可

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

  • shiftKey

    ブール値(省略可)

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

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

KeyboardEventType

Chrome 44 以降

列挙型

"keyup"

"keydown"

MenuItem

入力メソッドが言語メニューからユーザーとやり取りするために使用するメニュー項目。

プロパティ

  • ON

    ブール値(省略可)

    この項目をチェック付きで描画する必要があることを示します。

  • 有効

    ブール値(省略可)

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

  • id

    文字列

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

  • ラベル

    文字列 省略可

    この項目のメニューに表示されるテキスト。

  • スタイル

    MenuItemStyle 省略可

    メニュー項目のタイプ。

  • 表示

    ブール値(省略可)

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

MenuItemStyle

Chrome 44 以降

メニュー項目のタイプ。区切り文字の間のラジオボタンはグループ化されているとみなされます。

列挙型

"check"

"radio"

"separator"

MenuParameters

Chrome 88 以降

プロパティ

  • engineID

    文字列

    使用するエンジンの ID。

  • アイテム

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

MouseButton

Chrome 44 以降

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

列挙型

"left"

"middle"

"right"

ScreenType

Chrome 44 以降

IME が有効になる画面のタイプ。

列挙型

"normal"

"login"

"lock"

"secondary-login"

UnderlineStyle

Chrome 44 以降

このセグメントを変更する下線の種類。

列挙型

"underline"

"doubleUnderline"

"noUnderline"

WindowPosition

Chrome 44 以降

候補ウィンドウを表示する場所。「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 86 以降
chrome.input.ime.setAssistiveWindowButtonHighlighted(
  parameters: object,
)
: Promise<void>

補助ウィンドウのボタンをハイライト表示またはハイライト表示解除します。

パラメータ

  • パラメータ

    オブジェクト

    • announceString

      文字列 省略可

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

    • ボタンの ID

    • contextID

      数値

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

    • 強調表示

      ブール値

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

    • windowType

      "undo"

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

戻り値

  • Promise<void>

    Chrome 111+

setAssistiveWindowProperties()

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

      • ラベル

        文字列 省略可

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

      • parentId

        number 省略可

        これらの候補を追加する 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。

      • currentCandidateIndex

        number 省略可

        Chrome 84 以降

        候補者の総数に対する、現在選択されている候補者のインデックス。

      • cursorVisible

        ブール値(省略可)

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

      • pageSize

        number 省略可

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

      • totalCandidates

        number 省略可

        Chrome 84 以降

        候補ウィンドウの候補の合計数。

      • カテゴリ

        ブール値(省略可)

        候補ウィンドウを縦向きでレンダリングする場合は true、横向きにする場合は false。

      • 表示

        ブール値(省略可)

        候補ウィンドウを表示する場合は true、非表示にする場合は false。

      • windowPosition

        WindowPosition 省略可

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

戻り値

  • Promise<boolean>

    Chrome 111+

setComposition()

chrome.input.ime.setComposition(
  parameters: object,
)
: Promise<boolean>

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

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

      楽曲のテキストが設定されるコンテキストの ID

    • cursor

      数値

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

    • セグメント

      object[] 省略可

      セグメントとその関連タイプのリスト。

      • end

        数値

        このセグメントの終了位置となる文字のインデックス。

      • start

        数値

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

      • スタイル

        このセグメントを変更する下線の種類。

    • selectionEnd

      number 省略可

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

    • selectionStart

      number 省略可

      選択が開始されるテキスト内の位置。

    • テキスト

      文字列

      設定するテキスト

戻り値

  • 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

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

      文字列

    • 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

    • 戻り値

      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 の最初の文字の絶対位置を示します。

      • テキスト

        文字列

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