설명
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
보조 창의 버튼 ID입니다.
enum
"addToDictionary"
AssistiveWindowProperties
보조 창의 속성입니다.
속성
-
announceString
문자열(선택사항)
ChromeVox에서 음성으로 안내할 문자열입니다.
-
유형
-
표시
boolean
AssistiveWindow를 표시하려면 true를 설정하고 숨기려면 false를 설정합니다.
AssistiveWindowType
보조 창의 유형입니다.
가치
AutoCapitalizeType
텍스트 필드의 자동 대문자 유형입니다.
enum
"sentences"
InputContext
입력 컨텍스트를 설명합니다.
속성
-
autoCapitalizeChrome 69 이상
텍스트 필드의 자동 대문자 유형입니다.
-
autoComplete
boolean
텍스트 필드의 자동 완성 여부입니다.
-
autoCorrect
boolean
텍스트 필드의 자동 수정 여부입니다.
-
contextID
숫자
텍스트 필드 작업의 대상을 지정하는 데 사용됩니다. 이 ID는 onBlur가 호출되는 즉시 무효화됩니다.
-
shouldDoLearning
boolean
Chrome 68 이상사용자에게 더 나은 입력 제안 기능을 제공하는 데 텍스트 필드에 입력된 텍스트를 사용할지 여부입니다.
-
spellCheck
boolean
텍스트 필드에 맞춤법 검사가 필요한지 여부입니다.
-
이 텍스트 입력란에서 수정하는 값의 유형(텍스트, 숫자, URL 등)
InputContextType
이 텍스트 입력란에서 수정하는 값의 유형(텍스트, 숫자, URL 등)
enum
"tel"
"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입니다.
-
키
문자열
누르는 키 값
-
keyCode
숫자 선택사항
지원 중단된 HTML keyCode. 누르는 키와 연결된 수정되지 않은 식별자를 나타내는 시스템 및 구현에 종속된 숫자 코드입니다.
-
requestId
문자열(선택사항)
(지원 중단됨) 요청의 ID입니다. 대신
onKeyEvent
이벤트의requestId
매개변수를 사용하세요. -
shiftKey
불리언 선택사항
Shift 키를 눌렀는지 여부입니다.
-
keyup 또는 keydown 중 하나입니다.
KeyboardEventType
enum
"keyup"
MenuItem
언어 메뉴에서 사용자와 상호작용하기 위해 입력 방법에서 사용하는 메뉴 항목입니다.
속성
-
선택됨
불리언 선택사항
이 항목을 체크표시로 그려야 함을 나타냅니다.
-
사용 설정됨
불리언 선택사항
이 항목이 사용 설정되어 있음을 나타냅니다.
-
ID
문자열
이 MenuItem을 참조하는 콜백에 전달되는 문자열입니다.
-
라벨
문자열(선택사항)
이 항목의 메뉴에 표시되는 텍스트입니다.
-
스타일
MenuItemStyle 선택사항
메뉴 항목의 유형입니다.
-
표시
불리언 선택사항
이 항목을 표시할 수 있음을 나타냅니다.
MenuItemStyle
메뉴 항목의 유형입니다. 구분자 사이의 라디오 버튼은 그룹화된 것으로 간주됩니다.
enum
MenuParameters
속성
-
engineID
문자열
사용할 엔진의 ID입니다.
-
items
MenuItem[]
추가하거나 업데이트할 MenuItems입니다. 배열에 있는 순서대로 추가됩니다.
MouseButton
클릭된 마우스 버튼
enum
ScreenType
IME가 활성화되는 화면 유형입니다.
enum
"normal"
"secondary-login"
UnderlineStyle
이 구간을 수정하기 위한 밑줄의 유형입니다.
enum
WindowPosition
후보 창을 표시할 위치입니다. 'cursor'로 설정하면 창이 커서를 따라갑니다. 'composition'으로 설정하면 창이 음악작품의 시작 부분으로 고정됩니다.
enum
"cursor"
"composition"
방법
clearComposition()
chrome.input.ime.clearComposition(
parameters: object,
callback?: function,
)
현재 구성을 지웁니다. 이 확장 프로그램이 활성 IME를 소유하지 않으면 실패합니다.
매개변수
-
매개변수
객체
-
contextID
숫자
음악작품이 삭제될 컨텍스트의 ID입니다.
-
-
callback
함수 선택사항
callback
매개변수는 다음과 같습니다.(success: boolean) => void
-
성공
boolean
-
반환 값
-
Promise<boolean>
Chrome 111 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.
commitText()
chrome.input.ime.commitText(
parameters: object,
callback?: function,
)
제공된 텍스트를 현재 입력에 커밋합니다.
매개변수
-
매개변수
객체
-
contextID
숫자
텍스트가 커밋될 컨텍스트의 ID입니다.
-
text
문자열
커밋할 텍스트
-
-
callback
함수 선택사항
callback
매개변수는 다음과 같습니다.(success: boolean) => void
-
성공
boolean
-
반환 값
-
Promise<boolean>
Chrome 111 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.
deleteSurroundingText()
chrome.input.ime.deleteSurroundingText(
parameters: object,
callback?: function,
)
캐럿 주위의 텍스트를 삭제합니다.
매개변수
-
매개변수
객체
-
contextID
숫자
주변 텍스트가 삭제될 컨텍스트의 ID입니다.
-
engineID
문자열
이벤트를 수신하는 엔진의 ID입니다.
-
length
숫자
삭제할 문자 수
-
오프셋
숫자
삭제가 시작되는 캐럿 위치로부터의 오프셋입니다. 이 값은 음수일 수 있습니다.
-
-
callback
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
Promise<void>
Chrome 111 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.
hideInputView()
chrome.input.ime.hideInputView()
시스템에 의해 자동으로 팝업되는 입력 뷰 창을 숨깁니다. 입력 뷰 창이 이미 숨겨져 있으면 이 함수는 아무것도 하지 않습니다.
keyEventHandled()
chrome.input.ime.keyEventHandled(
requestId: string,
response: boolean,
)
onKeyEvent에서 수신한 키 이벤트가 처리됨을 나타냅니다. onKeyEvent 리스너가 비동기식인 경우에만 호출해야 합니다.
매개변수
-
requestId
문자열
처리된 이벤트의 요청 ID입니다. keyEvent.requestId에서 가져와야 합니다.
-
응답
boolean
키 입력이 처리된 경우 true, 처리되지 않은 경우 false
sendKeyEvents()
chrome.input.ime.sendKeyEvents(
parameters: object,
callback?: function,
)
주요 이벤트를 전송합니다. 이 함수는 가상 키보드에서 사용됩니다. 사용자가 가상 키보드의 키를 누르면 이 함수가 해당 이벤트를 시스템에 전파하는 데 사용됩니다.
매개변수
-
매개변수
객체
-
contextID
숫자
키 이벤트가 전송될 컨텍스트의 ID입니다. 입력이 아닌 필드로 키 이벤트를 전송하려면 0입니다.
-
keyData
키 이벤트의 데이터입니다.
-
-
callback
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
Promise<void>
Chrome 111 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.
setAssistiveWindowButtonHighlighted()
chrome.input.ime.setAssistiveWindowButtonHighlighted(
parameters: object,
callback?: function,
)
보조 창의 버튼을 강조 표시하거나 강조 표시합니다.
매개변수
-
매개변수
객체
-
announceString
문자열(선택사항)
스크린 리더에서 알릴 텍스트입니다.
-
buttonID
버튼의 ID입니다.
-
contextID
숫자
보조 창을 소유하는 컨텍스트의 ID입니다.
-
눈에 띄는 채팅 메시지
boolean
버튼을 강조 표시해야 하는지 여부입니다.
-
windowType
버튼이 속한 창 유형입니다.
-
-
callback
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
Promise<void>
Chrome 111 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.
setAssistiveWindowProperties()
chrome.input.ime.setAssistiveWindowProperties(
parameters: object,
callback?: function,
)
지정된 속성이 있는 보조 창을 표시하거나 숨깁니다.
매개변수
-
매개변수
객체
-
contextID
숫자
보조 창을 소유하는 컨텍스트의 ID입니다.
-
보조 창의 속성입니다.
-
-
callback
함수 선택사항
callback
매개변수는 다음과 같습니다.(success: boolean) => void
-
성공
boolean
-
반환 값
-
Promise<boolean>
Chrome 111 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.
setCandidates()
chrome.input.ime.setCandidates(
parameters: object,
callback?: function,
)
현재 후보 목록을 설정합니다. 이 확장 프로그램이 활성 IME를 소유하지 않으면 실패합니다.
매개변수
-
매개변수
객체
-
후보
객체[]
후보 창에 표시할 후보자 목록
-
annotation
문자열(선택사항)
후보를 설명하는 추가 텍스트
-
조합
문자열
후보
-
ID
숫자
후보자 ID
-
라벨
문자열(선택사항)
후보 단어 옆에 표시되는 짧은 문자열(종종 단축키 또는 색인)
-
parentId
숫자 선택사항
이러한 후보를 추가할 ID입니다.
-
사용량
객체(선택사항)
단어의 용법 또는 자세한 설명입니다.
-
body
문자열
세부정보 설명의 본문 문자열입니다.
-
title
문자열
세부정보 설명의 제목 문자열입니다.
-
-
-
contextID
숫자
후보 창을 소유하는 컨텍스트의 ID입니다.
-
-
callback
함수 선택사항
callback
매개변수는 다음과 같습니다.(success: boolean) => void
-
성공
boolean
-
반환 값
-
Promise<boolean>
Chrome 111 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.
setCandidateWindowProperties()
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
-
성공
boolean
-
반환 값
-
Promise<boolean>
Chrome 111 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.
setComposition()
chrome.input.ime.setComposition(
parameters: object,
callback?: function,
)
현재 구성을 설정합니다. 이 확장 프로그램이 활성 IME를 소유하지 않으면 실패합니다.
매개변수
-
매개변수
객체
-
contextID
숫자
음악작품 텍스트가 설정될 컨텍스트의 ID입니다.
-
cursor
숫자
커서 텍스트 내 위치입니다.
-
세그먼트
Object[] 선택사항
세그먼트 및 관련 유형 목록
-
end
숫자
이 세그먼트를 종료할 문자의 색인입니다.
-
시작
숫자
이 세그먼트를 시작할 문자의 색인입니다.
-
스타일
이 구간을 수정하기 위한 밑줄의 유형입니다.
-
-
selectionEnd
숫자 선택사항
텍스트에서 선택이 끝나는 위치입니다.
-
selectionStart
숫자 선택사항
텍스트 내에서 선택이 시작되는 위치입니다.
-
text
문자열
설정할 텍스트
-
-
callback
함수 선택사항
callback
매개변수는 다음과 같습니다.(success: boolean) => void
-
성공
boolean
-
반환 값
-
Promise<boolean>
Chrome 111 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.
setCursorPosition()
chrome.input.ime.setCursorPosition(
parameters: object,
callback?: function,
)
후보 창에서 커서 위치를 설정합니다. 이 확장 프로그램이 활성 IME를 소유하지 않으면 작동하지 않습니다.
매개변수
-
매개변수
객체
-
candidateID
숫자
선택할 후보자의 ID입니다.
-
contextID
숫자
후보 창을 소유하는 컨텍스트의 ID입니다.
-
-
callback
함수 선택사항
callback
매개변수는 다음과 같습니다.(success: boolean) => void
-
성공
boolean
-
반환 값
-
Promise<boolean>
Chrome 111 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.
setMenuItems()
chrome.input.ime.setMenuItems(
parameters: MenuParameters,
callback?: function,
)
이 IME가 활성화되면 제공된 메뉴 항목을 언어 메뉴에 추가합니다.
매개변수
-
매개변수
-
callback
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
Promise<void>
Chrome 111 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.
updateMenuItems()
chrome.input.ime.updateMenuItems(
parameters: MenuParameters,
callback?: function,
)
지정된 MenuItems의 상태를 업데이트합니다.
매개변수
-
매개변수
-
callback
함수 선택사항
callback
매개변수는 다음과 같습니다.() => void
반환 값
-
Promise<void>
Chrome 111 이상프로미스는 Manifest V3 이상에서 지원되지만 콜백은 이전 버전과의 호환성을 위해 제공됩니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 프로미스는 콜백에 전달되는 것과 동일한 유형으로 확인됩니다.
이벤트
onActivate
chrome.input.ime.onActivate.addListener(
callback: function,
)
이 이벤트는 IME가 활성화될 때 전송됩니다. IME가 onKeyPress 이벤트를 수신할 것임을 알립니다.
매개변수
-
callback
기능
callback
매개변수는 다음과 같습니다.(engineID: string, screen: ScreenType) => void
-
engineID
문자열
-
화면
-
onAssistiveWindowButtonClicked
chrome.input.ime.onAssistiveWindowButtonClicked.addListener(
callback: function,
)
이 이벤트는 보조 창의 버튼을 클릭하면 전송됩니다.
매개변수
-
callback
기능
callback
매개변수는 다음과 같습니다.(details: object) => void
-
세부정보
객체
-
buttonID
클릭한 버튼의 ID입니다.
-
windowType
보조 창의 유형입니다.
-
-
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
-
context
-
onInputContextUpdate
chrome.input.ime.onInputContextUpdate.addListener(
callback: function,
)
이 이벤트는 현재 InputContext의 속성(예: 유형)이 변경되면 전송됩니다. 이 이벤트를 수신 대기하고 사용자가 사용 설정한 모든 확장 프로그램으로 전송됩니다.
매개변수
-
callback
기능
callback
매개변수는 다음과 같습니다.(context: InputContext) => void
-
context
-
onKeyEvent
chrome.input.ime.onKeyEvent.addListener(
callback: function,
)
운영체제에서 키 이벤트가 전송될 때 실행됩니다. 이 확장 프로그램이 활성 IME를 소유한 경우 이벤트가 확장 프로그램으로 전송됩니다. 이벤트가 처리되지 않은 경우 false로 처리되면 리스너 함수는 true를 반환해야 합니다. 이벤트가 비동기식으로 평가되는 경우 이 함수는 정의되지 않은 것을 반환해야 하고 IME는 나중에 그 결과로 keyEventHandled()를 호출해야 합니다.
매개변수
-
callback
기능
callback
매개변수는 다음과 같습니다.(engineID: string, keyData: KeyboardEvent, requestId: string) => boolean | undefined
-
engineID
문자열
-
keyData
-
requestId
문자열
-
returns
부울 | 정의되지 않음
-
onMenuItemActivated
chrome.input.ime.onMenuItemActivated.addListener(
callback: function,
)
사용자가 메뉴 항목을 선택할 때 호출됩니다.
매개변수
-
callback
기능
callback
매개변수는 다음과 같습니다.(engineID: string, name: string) => void
-
engineID
문자열
-
이름
문자열
-
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
첫 문자의 절대 위치를 나타냅니다. -
text
문자열
커서 주변의 텍스트입니다. 이는 입력란에 포함된 모든 텍스트의 하위 집합입니다.
-
-