chrome.input.ime

説明

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

権限

input

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

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

対象

<ph type="x-smartling-placeholder"></ph> 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

    「元に戻す」

  • 表示

    ブール値

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

AssistiveWindowType

Chrome 85 以降

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

「元に戻す」

AutoCapitalizeType

Chrome 69 以降

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

列挙型

"文字"

"単語"

"sentences"

InputContext

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

プロパティ

  • autoCapitalize
    Chrome 69 以降

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

  • autoComplete

    ブール値

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

  • autoCorrect

    ブール値

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

  • contextID

    数値

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

  • shouldDoLearning

    ブール値

    Chrome 68 以降

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

  • spellCheck

    ブール値

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

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

InputContextType

Chrome 44 以降

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

列挙型

"テキスト"

"検索"

「tel」

"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 が有効かどうか。

  • コード

    文字列

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

  • ctrlKey

    ブール値(省略可)

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

  • extensionId

    文字列(省略可)

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

  • key

    文字列

    押されているキーの値

  • keyCode

    数値(省略可)

    非推奨の 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。

  • アイテム

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

MouseButton

Chrome 44 以降

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

列挙型

「left」

「middle」

"right"

ScreenType

Chrome 44 以降

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

列挙型

「normal」

"login"

"ロック"

"secondary-login"

UnderlineStyle

Chrome 44 以降

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

列挙型

"underline"

"doubleUnderline"

"noUnderline"

WindowPosition

Chrome 44 以降

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

列挙型

"カーソル"

"composition"

メソッド

clearComposition()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.input.ime.clearComposition(
  parameters: object,
  callback?: function,
)

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

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

      コンポジションを消去するコンテキストの ID

  • callback

    関数(省略可)

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

    (success: boolean) => void

    • success

      ブール値

戻り値

  • Promise&lt;boolean&gt;

    Chrome 111 以降

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

commitText()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.input.ime.commitText(
  parameters: object,
  callback?: function,
)

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

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

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

    • テキスト

      文字列

      commit するテキスト

  • callback

    関数(省略可)

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

    (success: boolean) => void

    • success

      ブール値

戻り値

  • Promise&lt;boolean&gt;

    Chrome 111 以降

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

deleteSurroundingText()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.input.ime.deleteSurroundingText(
  parameters: object,
  callback?: function,
)

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

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

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

    • engineID

      文字列

      イベントを受け取るエンジンの ID。

    • 長さ

      数値

      削除する文字数

    • offset

      数値

      削除を開始するキャレット位置からのオフセット。負の値を指定できます。

  • callback

    関数(省略可)

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

    () => void

戻り値

  • 約束 <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 から取得する必要があります。

  • レスポンス

    ブール値

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

sendKeyEvents()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.input.ime.sendKeyEvents(
  parameters: object,
  callback?: function,
)

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

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

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

    • keyData

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

  • callback

    関数(省略可)

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

    () => void

戻り値

  • 約束 <void>

    Chrome 111 以降

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

setAssistiveWindowButtonHighlighted()

<ph type="x-smartling-placeholder"></ph> 約束 Chrome 86 以降 をご覧ください。
chrome.input.ime.setAssistiveWindowButtonHighlighted(
  parameters: object,
  callback?: function,
)

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

パラメータ

  • パラメータ

    オブジェクト

    • announceString

      文字列(省略可)

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

    • ボタンの ID

    • contextID

      数値

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

    • 強調表示

      ブール値

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

    • windowType

      「元に戻す」

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

  • callback

    関数(省略可)

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

    () => void

戻り値

  • 約束 <void>

    Chrome 111 以降

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

setAssistiveWindowProperties()

<ph type="x-smartling-placeholder"></ph> 約束 Chrome 85 以降 をご覧ください。
chrome.input.ime.setAssistiveWindowProperties(
  parameters: object,
  callback?: function,
)

指定されたプロパティのアシスト ウィンドウを表示または非表示にします。

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

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

    • プロパティ

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

  • callback

    関数(省略可)

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

    (success: boolean) => void

    • success

      ブール値

戻り値

  • Promise&lt;boolean&gt;

    Chrome 111 以降

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

setCandidates()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.input.ime.setCandidates(
  parameters: object,
  callback?: function,
)

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

パラメータ

  • パラメータ

    オブジェクト

    • 候補

      object[]

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

      • アノテーション

        文字列(省略可)

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

      • 候補

        文字列

        受験者

      • id

        数値

        受験者の ID

      • ラベル

        文字列(省略可)

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

      • parentId

        数値(省略可)

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

      • 用途

        オブジェクト(省略可)

        単語の用法や詳細説明。

        • body

          文字列

          詳細説明の本文文字列。

        • title

          文字列

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

    • contextID

      数値

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

  • callback

    関数(省略可)

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

    (success: boolean) => void

    • success

      ブール値

戻り値

  • Promise&lt;boolean&gt;

    Chrome 111 以降

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

setCandidateWindowProperties()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.input.ime.setCandidateWindowProperties(
  parameters: object,
  callback?: function,
)

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

パラメータ

  • パラメータ

    オブジェクト

    • engineID

      文字列

      プロパティを設定するエンジンの 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

      ブール値

戻り値

  • Promise&lt;boolean&gt;

    Chrome 111 以降

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

setComposition()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.input.ime.setComposition(
  parameters: object,
  callback?: function,
)

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

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

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

    • cursor

      数値

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

    • セグメント

      オブジェクト [] 省略可

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

      • end

        数値

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

      • start

        数値

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

      • スタイル

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

    • selectionEnd

      数値(省略可)

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

    • selectionStart

      数値(省略可)

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

    • テキスト

      文字列

      設定するテキスト

  • callback

    関数(省略可)

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

    (success: boolean) => void

    • success

      ブール値

戻り値

  • Promise&lt;boolean&gt;

    Chrome 111 以降

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

setCursorPosition()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.input.ime.setCursorPosition(
  parameters: object,
  callback?: function,
)

候補ウィンドウ内のカーソルの位置を設定します。この拡張機能が有効な IME を所有していない場合は、何もする必要はありません。

パラメータ

  • パラメータ

    オブジェクト

    • candidateID

      数値

      選択する受験者の ID。

    • contextID

      数値

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

  • callback

    関数(省略可)

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

    (success: boolean) => void

    • success

      ブール値

戻り値

  • Promise&lt;boolean&gt;

    Chrome 111 以降

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

setMenuItems()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.input.ime.setMenuItems(
  parameters: MenuParameters,
  callback?: function,
)

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

パラメータ

  • パラメータ
  • callback

    関数(省略可)

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

    () => void

戻り値

  • 約束 <void>

    Chrome 111 以降

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

updateMenuItems()

<ph type="x-smartling-placeholder"></ph> 約束
chrome.input.ime.updateMenuItems(
  parameters: MenuParameters,
  callback?: function,
)

指定された MenuItem の状態を更新します

パラメータ

  • パラメータ
  • callback

    関数(省略可)

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

    () => void

戻り値

  • 約束 <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

      文字列

    • candidateID

      数値

    • ボタン

onDeactivated

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

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

パラメータ

  • 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

    • 戻り値

      boolean |未定義

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

      • テキスト

        文字列

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