説明
chrome.input.ime API を使用して、ChromeOS 用のカスタム IME を実装します。これにより、拡張機能でキーストロークの処理、コンポジションの設定、候補ウィンドウの管理を行うことができます。
権限
inputinput.ime API を使用するには、拡張機能マニフェストで「input」権限を宣言する必要があります。次に例を示します。
{
"name": "My extension",
...
"permissions": [
"input"
],
...
}
対象
例
次のコードは、入力された文字を大文字に変換する 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
アシスト ウィンドウのボタンの ID。
列挙型
「元に戻す」
"addToDictionary"
AssistiveWindowProperties
アシスト ウィンドウのプロパティ。
プロパティ
-
announceString
文字列 省略可
ChromeVox が読み上げる文字列。
-
type
「元に戻す」
-
表示
ブール値
AssistiveWindow を表示するには true に設定し、非表示にするには false に設定します。
AssistiveWindowType
アシスト ウィンドウの種類。
値
「元に戻す」
AutoCapitalizeType
テキスト フィールドの自動大文字変換タイプ。
列挙型
"characters"
"words"
"sentences"
InputContext
入力 Context を記述します。
プロパティ
-
autoCapitalizeChrome 69 以降 Chrome 148 以降の browser.*
テキスト フィールドの自動大文字変換タイプ。
-
autoComplete
ブール値
テキスト フィールドで予測入力が必要かどうか。
-
autoCorrect
ブール値
テキスト フィールドで自動修正が必要かどうか。
-
contextID
数値
これは、テキスト フィールド オペレーションのターゲットを指定するために使用されます。この ID は、onBlur が呼び出されるとすぐに無効になります。
-
shouldDoLearning
ブール値
Chrome 68 以降 Chrome 148 以降の browser.*テキスト フィールドに入力されたテキストを、ユーザーの入力候補の改善に使用するかどうか。
-
spellCheck
ブール値
テキスト フィールドでスペルチェックが必要かどうか。
-
type
このテキスト フィールドで編集する値のタイプ(テキスト、数値、URL など)
InputContextType
このテキスト フィールドで編集する値のタイプ(テキスト、数値、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 キーが押されているかどうか。
-
type
keyup または keydown のいずれか。
KeyboardEventType
列挙型
"keyup"
"keydown"
MenuItem
入力方法が言語メニューからユーザーとやり取りするために使用するメニュー項目。
プロパティ
-
ON
boolean 省略可
このアイテムをチェック付きで描画する必要があることを示します。
-
有効
boolean 省略可
このアイテムが有効であることを示します。
-
id
文字列
この MenuItem を参照するコールバックに渡される文字列。
-
ラベル
文字列 省略可
このアイテムのメニューに表示されるテキスト。
-
スタイル
MenuItemStyle 省略可
メニュー項目の種類。
-
表示
boolean 省略可
このアイテムが表示されていることを示します。
MenuItemStyle
メニュー項目の種類。セパレータ間のラジオボタンはグループ化されていると見なされます。
列挙型
「チェック」
"radio"
"separator"
MenuParameters
プロパティ
-
engineID
文字列
使用するエンジンの ID。
-
アイテム
MenuItem[]
追加または更新する MenuItems。これらは、配列に存在する順序で追加されます。
MouseButton
クリックされたマウスボタン。
列挙型
"left"
"middle"
"right"
ScreenType
IME が有効になっている画面タイプ。
列挙型
"normal"
"login"
「ロック」
"secondary-login"
UnderlineStyle
このセグメントを変更する下線のタイプ。
列挙型
"underline"
"doubleUnderline"
"noUnderline"
WindowPosition
候補ウィンドウを表示する場所。「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()
browser.input.ime.setAssistiveWindowButtonHighlighted(
parameters: object,
): Promise<void>
アシスト ウィンドウのボタンをハイライト表示またはハイライト表示解除します。
パラメータ
-
パラメータ
オブジェクト
-
announceString
文字列 省略可
スクリーン リーダーが読み上げるテキスト。
-
buttonID
ボタンの ID
-
contextID
数値
アシスト ウィンドウを所有するコンテキストの ID。
-
強調表示
ブール値
ボタンをハイライト表示するかどうか。
-
windowType
「元に戻す」
ボタンが属するウィンドウ タイプ。
-
戻り値
-
Promise<void>
Chrome 111 以降 Chrome 148 以降の browser.*オペレーションが完了すると解決されます。失敗した場合、Promise は拒否されます。
setAssistiveWindowProperties()
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
-
engineID
文字列
-
画面
-
onAssistiveWindowButtonClicked
browser.input.ime.onAssistiveWindowButtonClicked.addListener(
callback: function,
)
このイベントは、アシスト ウィンドウのボタンがクリックされたときに送信されます。
パラメータ
-
callback
関数
callbackパラメータは次のようになります。(details: object) => void
-
詳細
オブジェクト
-
buttonID
クリックされたボタンの ID。
-
windowType
アシスト ウィンドウのタイプ。
-
-
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
-
engineID
文字列
-
keyData
-
requestId
文字列
-
戻り値
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の最初の文字の絶対位置を示します。 -
テキスト
文字列
カーソルの周囲のテキスト。これは、入力フィールド内のすべてのテキストのサブセットにすぎません。
-
-