chrome.input.ime

설명

chrome.input.ime API를 사용하여 ChromeOS용 맞춤 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에서 알릴 문자열입니다.

  • 유형

    "undo"

  • 표시

    부울

    AssistiveWindow를 표시하려면 true로 설정하고 숨기려면 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

    문자열 선택사항

    이 keyevent의 발신자의 확장 프로그램 ID입니다.

  • 문자열

    눌린 키의 값

  • keyCode

    번호 선택사항

    지원 중단된 HTML keyCode입니다. 이는 눌린 키와 연결된 수정되지 않은 식별자를 나타내는 시스템 및 구현 종속 숫자 코드입니다.

  • requestId

    문자열 선택사항

    (지원 중단됨) 요청의 ID입니다. 대신 onKeyEvent 이벤트의 requestId 매개변수를 사용하세요.

  • shiftKey

    불리언 선택사항

    SHIFT 키가 눌렸는지 여부입니다.

  • keyup 또는 keydown 중 하나입니다.

KeyboardEventType

Chrome 44 이상

열거형

"keyup"

'keydown'

MenuItem

입력 방법이 언어 메뉴에서 사용자와 상호작용하는 데 사용하는 메뉴 항목입니다.

속성

  • 선택됨

    불리언 선택사항

    이 항목을 체크 표시로 그려야 함을 나타냅니다.

  • 사용 설정됨

    불리언 선택사항

    이 항목이 사용 설정되어 있음을 나타냅니다.

  • id

    문자열

    이 MenuItem을 참조하는 콜백에 전달될 문자열입니다.

  • 라벨

    문자열 선택사항

    이 항목의 메뉴에 표시되는 텍스트입니다.

  • 스타일

    MenuItemStyle 선택사항

    메뉴 항목의 유형입니다.

  • 표시

    불리언 선택사항

    이 항목이 표시됨을 나타냅니다.

MenuItemStyle

Chrome 44 이상

메뉴 항목의 유형입니다. 구분선 사이의 라디오 버튼은 그룹화된 것으로 간주됩니다.

열거형

'확인'

'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>

제공된 텍스트를 현재 입력에 커밋합니다.

매개변수

  • 매개변수

    객체

    • contextID

      숫자

      텍스트가 커밋될 컨텍스트의 ID

    • 텍스트

      문자열

      커밋할 텍스트

반환 값

  • Promise<boolean>

    Chrome 111 이상

deleteSurroundingText()

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

캐럿 주변의 텍스트를 삭제합니다.

매개변수

  • 매개변수

    객체

    • contextID

      숫자

      주변 텍스트가 삭제될 컨텍스트의 ID입니다.

    • engineID

      문자열

      이벤트를 수신하는 엔진의 ID입니다.

    • 길이

      숫자

      삭제할 문자 수

    • 오프셋

      숫자

      삭제가 시작될 캐럿 위치의 오프셋입니다. 이 값은 음수일 수 있습니다.

반환 값

  • 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[]

      후보 창에 표시할 후보 목록

      • annotation

        문자열 선택사항

        후보자를 설명하는 추가 텍스트

      • 조합

        문자열

        후보자

      • id

        숫자

        후보자의 ID

      • 라벨

        문자열 선택사항

        후보 옆에 표시되는 짧은 문자열입니다. 바로가기 키 또는 색인인 경우가 많습니다.

      • parentId

        번호 선택사항

        이 후보자를 추가할 ID

      • 사용량

        객체 선택사항

        단어의 사용 또는 세부 설명입니다.

        • 본문

          문자열

          세부 설명의 본문 문자열입니다.

        • 제목

          문자열

          세부정보 설명의 제목 문자열입니다.

    • contextID

      숫자

      후보 창을 소유한 컨텍스트의 ID입니다.

반환 값

  • Promise<boolean>

    Chrome 111 이상

setCandidateWindowProperties()

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

후보 창의 속성을 설정합니다. 확장이 활성 IME를 소유하지 않으면 실패합니다.

매개변수

  • 매개변수

    객체

    • engineID

      문자열

      속성을 설정할 엔진의 ID입니다.

    • 속성

      객체

      • auxiliaryText

        문자열 선택사항

        후보 창 하단에 표시되는 텍스트입니다.

      • auxiliaryTextVisible

        불리언 선택사항

        보조 텍스트를 표시하려면 true, 숨기려면 false입니다.

      • currentCandidateIndex

        번호 선택사항

        Chrome 84 이상

        총 후보자 중 현재 선택된 후보자의 색인입니다.

      • cursorVisible

        불리언 선택사항

        커서를 표시하려면 true, 숨기려면 false입니다.

      • pageSize

        번호 선택사항

        페이지당 표시할 후보자 수입니다.

      • totalCandidates

        번호 선택사항

        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

        숫자

        이 세그먼트가 끝나는 문자 색인입니다.

      • 시작

        숫자

        이 세그먼트가 시작되는 문자 색인

      • 스타일

        이 세그먼트를 수정할 밑줄의 유형입니다.

    • selectionEnd

      번호 선택사항

      선택이 끝나는 텍스트의 위치입니다.

    • selectionStart

      번호 선택사항

      선택이 시작되는 텍스트의 위치입니다.

    • 텍스트

      문자열

      설정할 텍스트

반환 값

  • 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

    • returns

      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

      객체

      • 앵커

        숫자

        선택의 시작 위치입니다. 이 값은 선택 항목이 없는 경우 캐럿 위치를 나타냅니다.

      • 초점

        숫자

        선택의 종료 위치입니다. 이 값은 선택 항목이 없는 경우 캐럿 위치를 나타냅니다.

      • 오프셋

        숫자

        Chrome 46 이상

        text의 오프셋 위치입니다. text에는 커서 주변의 텍스트 하위 집합만 포함되므로 오프셋은 text의 첫 번째 문자의 절대 위치를 나타냅니다.

      • 텍스트

        문자열

        커서 주변의 텍스트입니다. 입력 필드의 모든 텍스트 중 일부만 표시됩니다.