chrome.input.ime

説明

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

Chrome 85 以降

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

Enum

AssistiveWindowProperties

Chrome 85 以降

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

プロパティ

  • announceString

    string(省略可)

    ChromeVox が読み上げる文字列。

  • タイプ

  • 表示

    boolean

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

AssistiveWindowType

Chrome 85 以降

アシスト ウィンドウのタイプ。

AutoCapitalizeType

Chrome 69 以降

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

Enum

"words"

"sentences"

InputContext

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

プロパティ

  • autoCapitalize
    Chrome 69 以降

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

  • autoComplete

    boolean

    テキスト フィールドでオートコンプリートを使用するかどうか。

  • autoCorrect

    boolean

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

  • contextID

    数値

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

  • shouldDoLearning

    boolean

    Chrome 68 以降

    テキスト フィールドに入力されたテキストを、ユーザーへの入力候補の精度を向上させるために使用するかどうかを指定します。

  • spellCheck

    boolean

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

  • タイプ

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

InputContextType

Chrome 44 以降

このテキスト フィールドで編集される値のタイプ(テキスト、数値、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

Chrome 44 以降

Enum

MenuItem

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

プロパティ

  • オン

    ブール値(省略可)

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

  • 有効

    ブール値(省略可)

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

  • id

    文字列

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

  • ラベル

    string(省略可)

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

  • スタイル

    MenuItemStyle 省略可

    メニュー項目のタイプ。

  • 表示

    ブール値(省略可)

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

MenuItemStyle

Chrome 44 以降

メニュー項目のタイプ。セパレータ間にあるラジオボタンはグループ化されています。

Enum

"check"

"separator"

MenuParameters

Chrome 88 以降

プロパティ

  • engineID

    文字列

    使用するエンジンの ID。

  • items

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

MouseButton

Chrome 44 以降

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

Enum

"middle"

ScreenType

Chrome 44 以降

IME が有効化されている画面タイプ。

Enum

"normal"

"login"

"secondary-login"

UnderlineStyle

Chrome 44 以降

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

Enum

"underline"

"doubleUnderline"

"noUnderline"

WindowPosition

Chrome 44 以降

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

Enum

"composition"

Methods

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

    • 指定しています

      文字列

      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

      文字列

      イベントを受信するエンジンの 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()

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

      string(省略可)

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

    • ボタンの 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

      • ラベル

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

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

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

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

      文字列

    • 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

    • 戻り値

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

      • 指定しています

        文字列

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