browser.input.ime

説明

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

権限

input

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

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

対象

ChromeOS のみ

例

次のコードは、入力された文字を大文字に変換する IME を作成します。

var context_id = -1;

browser.input.ime.onFocus.addListener(function(context) {
  context_id = context.contextID;
});

browser.input.ime.onKeyEvent.addListener(
  function(engineID, keyData) {
    if (keyData.type == "keydown" && keyData.key.match(/^[a-z]$/)) {
      browser.input.ime.commitText({"contextID": context_id,
                                    "text": keyData.key.toUpperCase()});
      return true;
    } else {
      return false;
    }
  }
);

型

AssistiveWindowButton

Chrome 85 以降 Chrome 148 以降の browser.*

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

列挙型

「元に戻す」

"addToDictionary"

AssistiveWindowProperties

Chrome 85 以降 Chrome 148 以降の browser.*

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

プロパティ

  • announceString

    文字列 省略可

    ChromeVox が読み上げる文字列。

  • type

    「元に戻す」

  • 表示

    ブール値

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

AssistiveWindowType

Chrome 85 以降 Chrome 148 以降の browser.*

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

値

「元に戻す」

AutoCapitalizeType

Chrome 69 以降 Chrome 148 以降の browser.*

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

列挙型

"characters"

"words"

"sentences"

InputContext

入力 Context を記述します。

プロパティ

  • autoCapitalize
    Chrome 69 以降 Chrome 148 以降の browser.*

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

  • autoComplete

    ブール値

    テキスト フィールドで予測入力が必要かどうか。

  • autoCorrect

    ブール値

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

  • contextID

    数値

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

  • shouldDoLearning

    ブール値

    Chrome 68 以降 Chrome 148 以降の browser.*

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

  • spellCheck

    ブール値

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

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

InputContextType

Chrome 44 以降 Chrome 148 以降の browser.*

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

列挙型

"text"

"search"

"tel"

"url"

"email"

"number"

"password"

"null"

KeyboardEvent

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

プロパティ

  • altKey

    boolean 省略可

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

  • altgrKey

    boolean 省略可

    Chrome 79 以降 Chrome 148 以降の browser.*

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

  • capsLock

    boolean 省略可

    CAPS_LOCK が有効かどうか。

  • コード

    文字列

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

  • ctrlKey

    boolean 省略可

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

  • extensionId

    文字列 省略可

    この keyevent の送信者の拡張機能 ID。

  • key

    文字列

    押されているキーの値

  • keyCode

    number 省略可

    非推奨の HTML keyCode。これは、押されたキーに関連付けられた未変更の識別子を表す、システムおよび実装に依存する数値コードです。

  • requestId

    文字列 省略可

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

  • shiftKey

    boolean 省略可

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

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

KeyboardEventType

Chrome 44 以降 Chrome 148 以降の browser.*

列挙型

"keyup"

"keydown"

MenuItem

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

プロパティ

  • ON

    boolean 省略可

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

  • 有効

    boolean 省略可

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

  • id

    文字列

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

  • ラベル

    文字列 省略可

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

  • スタイル

    MenuItemStyle 省略可

    メニュー項目の種類。

  • 表示

    boolean 省略可

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

MenuItemStyle

Chrome 44 以降 Chrome 148 以降の browser.*

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

列挙型

「チェック」

"radio"

"separator"

MenuParameters

Chrome 88 以降 Chrome 148 以降の browser.*

プロパティ

  • engineID

    文字列

    使用するエンジンの ID。

  • アイテム

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

MouseButton

Chrome 44 以降 Chrome 148 以降の browser.*

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

列挙型

"left"

"middle"

"right"

ScreenType

Chrome 44 以降 Chrome 148 以降の browser.*

IME が有効になっている画面タイプ。

列挙型

"normal"

"login"

「ロック」

"secondary-login"

UnderlineStyle

Chrome 44 以降 Chrome 148 以降の browser.*

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

列挙型

"underline"

"doubleUnderline"

"noUnderline"

WindowPosition

Chrome 44 以降 Chrome 148 以降の browser.*

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

列挙型

"cursor"

"composition"

メソッド

clearComposition()

browser.input.ime.clearComposition(
  parameters: object,
)
: Promise<boolean>

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

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

      コンポジションがクリアされるコンテキストの ID

戻り値

  • Promise<boolean>

    Chrome 111 以降 Chrome 148 以降の browser.*

    オペレーションが完了すると、テキストが受け入れられたかどうかを示すブール値が返されます。失敗した場合、Promise は拒否されます。

commitText()

browser.input.ime.commitText(
  parameters: object,
)
: Promise<boolean>

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

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

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

    • テキスト

      文字列

      commit するテキスト

戻り値

  • Promise<boolean>

    Chrome 111 以降 Chrome 148 以降の browser.*

    オペレーションが完了すると、テキストが受け入れられたかどうかを示すブール値が返されます。失敗した場合、Promise は拒否されます。

deleteSurroundingText()

browser.input.ime.deleteSurroundingText(
  parameters: object,
)
: Promise<void>

カーソルの周囲のテキストを削除します。

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

      周囲のテキストが削除されるコンテキストの ID。

    • engineID

      文字列

      イベントを受信するエンジンの ID。

    • 長さ

      数値

      削除する文字数

    • offset

      数値

      削除を開始するカーソル位置からのオフセット。この値は負の値にすることもできます。

戻り値

  • Promise<void>

    Chrome 111 以降 Chrome 148 以降の browser.*

    オペレーションが完了すると解決されます。

hideInputView()

browser.input.ime.hideInputView(): void

システムによって自動的にポップアップされる入力ビュー ウィンドウを非表示にします。入力ビュー ウィンドウがすでに非表示になっている場合、この関数は何も行いません。

keyEventHandled()

browser.input.ime.keyEventHandled(
  requestId: string,
  response: boolean,
)
: void

onKeyEvent で受信したキーイベントが処理されたことを示します。これは、onKeyEvent リスナーが非同期の場合にのみ呼び出す必要があります。

パラメータ

  • requestId

    文字列

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

  • レスポンス

    ブール値

    キーストロークが処理された場合は true、処理されなかった場合は false

sendKeyEvents()

browser.input.ime.sendKeyEvents(
  parameters: object,
)
: Promise<void>

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

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

      キーイベントの送信先となるコンテキストの ID。キーイベントを入力フィールド以外に送信する場合は 0。

    • keyData

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

戻り値

  • Promise<void>

    Chrome 111 以降 Chrome 148 以降の browser.*

    オペレーションが完了すると解決されます。

setAssistiveWindowButtonHighlighted()

Chrome 86 以降 Chrome 148 以降の browser.*
browser.input.ime.setAssistiveWindowButtonHighlighted(
  parameters: object,
)
: Promise<void>

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

パラメータ

  • パラメータ

    オブジェクト

    • announceString

      文字列 省略可

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

    • ボタンの ID

    • contextID

      数値

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

    • 強調表示

      ブール値

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

    • windowType

      「元に戻す」

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

戻り値

  • Promise<void>

    Chrome 111 以降 Chrome 148 以降の browser.*

    オペレーションが完了すると解決されます。失敗した場合、Promise は拒否されます。

setAssistiveWindowProperties()

Chrome 85 以降 Chrome 148 以降の browser.*
browser.input.ime.setAssistiveWindowProperties(
  parameters: object,
)
: Promise<boolean>

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

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

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

    • プロパティ

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

戻り値

  • Promise<boolean>

    Chrome 111 以降 Chrome 148 以降の browser.*

    オペレーションが完了すると解決されます。

setCandidates()

browser.input.ime.setCandidates(
  parameters: object,
)
: Promise<boolean>

現在の候補リストを設定します。この拡張機能がアクティブな IME を所有していない場合、失敗します。

パラメータ

  • パラメータ

    オブジェクト

    • 候補

      object[]

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

      • アノテーション

        文字列 省略可

        候補者に関する追加の説明文

      • 候補

        文字列

        候補者

      • id

        数値

        候補者の ID

      • ラベル

        文字列 省略可

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

      • parentId

        number 省略可

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

      • 用途

        オブジェクト(省略可)

        単語の使用方法または詳細な説明。

        • body

          文字列

          詳細な説明の本文文字列。

        • title

          文字列

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

    • contextID

      数値

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

戻り値

  • Promise<boolean>

    Chrome 111 以降 Chrome 148 以降の browser.*

    オペレーションが完了すると解決されます。

setCandidateWindowProperties()

browser.input.ime.setCandidateWindowProperties(
  parameters: object,
)
: Promise<boolean>

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

パラメータ

  • パラメータ

    オブジェクト

    • engineID

      文字列

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

    • プロパティ

      オブジェクト

      • auxiliaryText

        文字列 省略可

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

      • auxiliaryTextVisible

        boolean 省略可

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

      • currentCandidateIndex

        number 省略可

        Chrome 84 以降 Chrome 148 以降の browser.*

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

      • cursorVisible

        boolean 省略可

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

      • pageSize

        number 省略可

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

      • totalCandidates

        number 省略可

        Chrome 84 以降 Chrome 148 以降の browser.*

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

      • カテゴリ

        boolean 省略可

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

      • 表示

        boolean 省略可

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

      • windowPosition

        WindowPosition 省略可

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

戻り値

  • Promise<boolean>

    Chrome 111 以降 Chrome 148 以降の browser.*

    オペレーションが完了すると解決されます。

setComposition()

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

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

パラメータ

  • パラメータ

    オブジェクト

    • contextID

      数値

      作成テキストが設定されるコンテキストの ID

    • cursor

      数値

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

    • セグメント

      object[] 省略可

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

      • end

        数値

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

      • start

        数値

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

      • スタイル

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

    • selectionEnd

      number 省略可

      選択範囲の終了位置。

    • selectionStart

      number 省略可

      選択範囲の開始位置。

    • テキスト

      文字列

      設定するテキスト

戻り値

  • Promise<boolean>

    Chrome 111 以降 Chrome 148 以降の browser.*

    オペレーションが完了すると、テキストが受け入れられたかどうかを示すブール値が返されます。失敗した場合、Promise は拒否されます。

setCursorPosition()

browser.input.ime.setCursorPosition(
  parameters: object,
)
: Promise<boolean>

候補ウィンドウでのカーソルの位置を設定します。この拡張機能がアクティブな IME を所有していない場合、これは何も行いません。

パラメータ

  • パラメータ

    オブジェクト

    • candidateID

      数値

      選択する候補者の ID。

    • contextID

      数値

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

戻り値

  • Promise<boolean>

    Chrome 111 以降 Chrome 148 以降の browser.*

    オペレーションが完了すると解決されます。

setMenuItems()

browser.input.ime.setMenuItems(
  parameters: MenuParameters,
)
: Promise<void>

この IME が有効な場合に、指定されたメニュー項目を言語メニューに追加します。

パラメータ

戻り値

  • Promise<void>

    Chrome 111 以降 Chrome 148 以降の browser.*

updateMenuItems()

browser.input.ime.updateMenuItems(
  parameters: MenuParameters,
)
: Promise<void>

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

パラメータ

戻り値

  • Promise<void>

    Chrome 111 以降 Chrome 148 以降の browser.*

    オペレーションが完了すると解決されます。

イベント

onActivate

browser.input.ime.onActivate.addListener(
  callback: function,
)

このイベントは、IME が有効になったときに送信されます。これは、IME が onKeyPress イベントを受信することを示します。

パラメータ

  • callback

    関数

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

    (engineID: string, screen: ScreenType) => void

onAssistiveWindowButtonClicked

Chrome 85 以降 Chrome 148 以降の browser.*
browser.input.ime.onAssistiveWindowButtonClicked.addListener(
  callback: function,
)

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

パラメータ

  • callback

    関数

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

    (details: object) => void

onBlur

browser.input.ime.onBlur.addListener(
  callback: function,
)

このイベントは、テキスト ボックスからフォーカスが外れたときに送信されます。このイベントをリッスンし、ユーザーによって有効にされているすべての拡張機能に送信されます。

パラメータ

  • callback

    関数

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

    (contextID: number) => void

    • contextID

      数値

onCandidateClicked

browser.input.ime.onCandidateClicked.addListener(
  callback: function,
)

このイベントは、この拡張機能がアクティブな IME を所有している場合に送信されます。

パラメータ

  • callback

    関数

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

    (engineID: string, candidateID: number, button: MouseButton) => void

    • engineID

      文字列

    • candidateID

      数値

    • ボタン

onDeactivated

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

このイベントは、IME が無効になったときに送信されます。これは、IME が onKeyPress イベントを受信しなくなることを示します。

パラメータ

  • callback

    関数

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

    (engineID: string) => void

    • engineID

      文字列

onFocus

browser.input.ime.onFocus.addListener(
  callback: function,
)

このイベントは、テキスト ボックスにフォーカスが移動したときに送信されます。このイベントをリッスンし、ユーザーによって有効にされているすべての拡張機能に送信されます。

パラメータ

  • callback

    関数

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

    (context: InputContext) => void

onInputContextUpdate

browser.input.ime.onInputContextUpdate.addListener(
  callback: function,
)

このイベントは、現在の InputContext のプロパティ(タイプなど)が変更されたときに送信されます。このイベントをリッスンし、ユーザーによって有効にされているすべての拡張機能に送信されます。

パラメータ

  • callback

    関数

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

    (context: InputContext) => void

onKeyEvent

browser.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

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

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

パラメータ

  • callback

    関数

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

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

    • engineID

      文字列

    • name

      文字列

onReset

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

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

パラメータ

  • callback

    関数

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

    (engineID: string) => void

    • engineID

      文字列

onSurroundingTextChanged

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

カーソルの周囲の編集可能な文字列が変更されたとき、またはカーソルの位置が移動されたときに呼び出されます。テキストの長さは、往復の各方向で 100 文字に制限されています。

パラメータ

  • callback

    関数

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

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

    • engineID

      文字列

    • surroundingInfo

      オブジェクト

      • アンカー

        数値

        選択範囲の開始位置。この値は、選択範囲がない場合のカーソル位置を示します。

      • フォーカス

        数値

        選択範囲の終了位置。この値は、選択範囲がない場合のカーソル位置を示します。

      • offset

        数値

        Chrome 46 以降 Chrome 148 以降の browser.*

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

      • テキスト

        文字列

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