openharmony 鸿蒙 js-apis-inputeventclient-sys

2025-06-12 浏览 (1)

@ohos.multimodalInput.inputEventClient (Input Event Injection) (System API)

The inputEventClient module implements the input event injection capability.

NOTE

  • The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.

  • The APIs provided by this module are system APIs.

Modules to Import

import { inputEventClient } from '@kit.InputKit';

inputEventClient.injectEvent

injectEvent({KeyEvent: KeyEvent}): void

Injects keys (including single keys and combination keys).

System capability: SystemCapability.MultimodalInput.Input.InputSimulator

Permission required: ohos.permission.INJECT_INPUT_EVENT

Parameters

NameTypeMandatoryDescription
KeyEventKeyEventYesKey event to inject.

Error codes

For details about the error codes, see Universal Error Codes.

IDError Message
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed.

Example

try {
  let backKeyDown: inputEventClient.KeyEvent = {
    isPressed: true,
    keyCode: 2,
    keyDownDuration: 0,
    isIntercepted: false
  }

  class EventDown {
    KeyEvent: inputEventClient.KeyEvent|null = null
  }

  let eventDown: EventDown = { KeyEvent: backKeyDown }
  inputEventClient.injectEvent(eventDown);

  let backKeyUp: inputEventClient.KeyEvent = {
    isPressed: false,
    keyCode: 2,
    keyDownDuration: 0,
    isIntercepted: false
  };

  class EventUp {
    KeyEvent: inputEventClient.KeyEvent|null = null
  }

  let eventUp: EventUp = { KeyEvent: backKeyUp }
  inputEventClient.injectEvent(eventUp);
} catch (error) {
  console.error(`Failed to inject KeyEvent, error: ${JSON.stringify(error, [`code`, `message`])}`);
}

inputEventClient.injectKeyEvent11+

injectKeyEvent(keyEvent: KeyEventData): void

Injects key events (for both single keys and combination keys).

System capability: SystemCapability.MultimodalInput.Input.InputSimulator

Permission required: ohos.permission.INJECT_INPUT_EVENT

Parameters

NameTypeMandatoryDescription
keyEventKeyEventDataYesKey event to inject.

Error codes

For details about the error codes, see Universal Error Codes.

IDError Message
202SystemAPI permission error.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed.

Example

try {
  let backKeyDown: inputEventClient.KeyEvent = {
    isPressed: true,
    keyCode: 2,
    keyDownDuration: 0,
    isIntercepted: false
  }

  class EventDown {
    keyEvent: inputEventClient.KeyEvent|null = null
  }

  let eventDown: EventDown = { keyEvent: backKeyDown }
  inputEventClient.injectKeyEvent(eventDown);

  let backKeyUp: inputEventClient.KeyEvent = {
    isPressed: false,
    keyCode: 2,
    keyDownDuration: 0,
    isIntercepted: false
  };

  class EventUp {
    keyEvent: inputEventClient.KeyEvent|null = null
  }

  let eventUp: EventUp = { keyEvent: backKeyUp }
  inputEventClient.injectKeyEvent(eventUp);
} catch (error) {
  console.error(`Failed to inject KeyEvent, error: ${JSON.stringify(error, [`code`, `message`])}`);
}

inputEventClient.injectMouseEvent11+

injectMouseEvent(mouseEvent: MouseEventData): void

Injects a mouse/touchpad event.

System capability: SystemCapability.MultimodalInput.Input.InputSimulator

Permission required: ohos.permission.INJECT_INPUT_EVENT

Parameters

NameTypeMandatoryDescription
mouseEventMouseEventDataYesMouse/touchpad event to inject.

Error codes

For details about the error codes, see Universal Error Codes.

IDError Message
202SystemAPI permission error.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed.

Example

import { MouseEvent } from '@kit.InputKit';

try {
  let mouseButtonUpData: MouseEvent = {
    id: 0,
    deviceId: 1,
    actionTime: 2,
    screenId: 1,
    windowId: 0,
    action: 3,
    screenX: 100,
    screenY: 200,
    windowX: 100,
    windowY: 200,
    rawDeltaX: 200,
    rawDeltaY: 200,
    button: 2,
    pressedButtons: [2],
    axes: [],
    pressedKeys: [0],
    ctrlKey: false,
    altKey: false,
    shiftKey: false,
    logoKey: false,
    fnKey: false,
    capsLock: false,
    numLock: false,
    scrollLock: false,
    toolType: 1,
  }
  let mouseButtonUp: inputEventClient.MouseEventData = {
    mouseEvent: mouseButtonUpData
  }
  inputEventClient.injectMouseEvent(mouseButtonUp);

  let mouseButtonDownData: MouseEvent = {
    id: 0,
    deviceId: 1,
    actionTime: 2,
    screenId: 1,
    windowId: 0,
    action: 2,
    screenX: 100,
    screenY: 200,
    windowX: 100,
    windowY: 200,
    rawDeltaX: 200,
    rawDeltaY: 200,
    button: 2,
    pressedButtons: [2],
    axes: [],
    pressedKeys: [0],
    ctrlKey: false,
    altKey: false,
    shiftKey: false,
    logoKey: false,
    fnKey: false,
    capsLock: false,
    numLock: false,
    scrollLock: false,
    toolType: 1,
  }
  let mouseButtonDown: inputEventClient.MouseEventData = {
    mouseEvent: mouseButtonDownData
  };
  inputEventClient.injectMouseEvent(mouseButtonDown);
}

catch (error) {
  console.error(`Failed to inject MouseEvent, error: ${JSON.stringify(error, [`code`, `message`])}`);
}

inputEventClient.injectTouchEvent11+

injectTouchEvent(touchEvent: TouchEventData): void

Injects a touchscreen event.

System capability: SystemCapability.MultimodalInput.Input.InputSimulator

Permission required: ohos.permission.INJECT_INPUT_EVENT

Parameters

NameTypeMandatoryDescription
touchEventTouchEventDataYesTouchscreen event to inject.

Error codes

For details about the error codes, see Universal Error Codes.

IDError Message
202SystemAPI permission error.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed.

Example

import { Touch, TouchEvent } from '@kit.InputKit';

try {
  let touchEvent: Touch = {
    id: 1,
    pressedTime: 1,
    screenX: 0,
    screenY: 0,
    windowX: 0,
    windowY: 0,
    pressure: 0,
    width: 0,
    height: 0,
    tiltX: 0,
    tiltY: 0,
    toolX: 0,
    toolY: 0,
    toolWidth: 0,
    toolHeight: 0,
    rawX: 0,
    rawY: 0,
    toolType: 0,
  }

  let touchEventUpData: TouchEvent = {
    action: 1,
    sourceType: 0,
    touch: touchEvent,
    touches: [],
    id: 0,
    deviceId: 0,
    actionTime: 0,
    screenId: 0,
    windowId: 0
  }
  ;
  let touchEventUp: inputEventClient.TouchEventData = {
    touchEvent: touchEventUpData
  }
  inputEventClient.injectTouchEvent(touchEventUp);

  let touchEventDownData: TouchEvent = {
    action: 1,
    sourceType: 0,
    touch: touchEvent,
    touches: [],
    id: 0,
    deviceId: 0,
    actionTime: 0,
    screenId: 0,
    windowId: 0
  }
  ;
  let touchEventDown: inputEventClient.TouchEventData = {
    touchEvent: touchEventDownData
  }
  inputEventClient.injectTouchEvent(touchEventDown);
} catch (error) {
  console.error(`Failed to inject touchEvent, error: ${JSON.stringify(error, [`code`, `message`])}`);
}

inputEventClient.permitInjection12+

permitInjection(result: boolean): void

Specifies whether to authorize event injection.

System capability: SystemCapability.MultimodalInput.Input.InputSimulator

Permission required: ohos.permission.INJECT_INPUT_EVENT

Parameters

NameTypeMandatoryDescription
resultbooleanYesAuthorization result. The value true indicates that event injection is allowed, and the value false indicates the opposite.

Error codes

For details about the error codes, see Universal Error Codes.

IDError Message
202SystemAPI permission error.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified;2. Incorrect parameter types; 3. Parameter verification failed.
import { inputEventClient } from '@kit.InputKit';

try {
  let result = true;
  inputEventClient.permitInjection(result);
}catch(error){
  console.error("failed:" + JSON.stringify(error));
}

KeyEvent

Defines the key event to inject.

System capability: SystemCapability.MultimodalInput.Input.InputSimulator

NameTypeReadableWritableDescription
isPressedbooleanYesNoWhether the key is pressed.
The value true indicates that the key is pressed, and the value false indicates the opposite.
keyCodenumberYesNoKeycode value. Currently, only the KEYCODE_BACK key is supported.
keyDownDurationnumberYesNoDuration for pressing a key, in μs.
isInterceptedbooleanYesNoWhether the key event can be intercepted.
The value true indicates that the key event can be intercepted, and the value false indicates the opposite.

KeyEventData11+

Defines the key event to inject.

System capability: SystemCapability.MultimodalInput.Input.InputSimulator

NameTypeMandatoryDescription
keyEventKeyEventYesKey event to inject.

MouseEventData11+

Defines the mouse event data.

System capability: SystemCapability.MultimodalInput.Input.InputSimulator

NameTypeReadableWritableDescription
mouseEventMouseEventYesNoMouse event data.

TouchEventData11+

Defines the touchscreen event data.

System capability: SystemCapability.MultimodalInput.Input.InputSimulator

NameTypeReadableWritableDescription
touchEventTouchEventYesNoTouchscreen event data

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Input Kit

harmony 鸿蒙Input_DeviceListener

harmony 鸿蒙Input_InterceptorEventCallback

harmony 鸿蒙Input_AxisEvent

harmony 鸿蒙Input_DeviceInfo

harmony 鸿蒙Input_DeviceListener

harmony 鸿蒙Input_Hotkey

harmony 鸿蒙Input_InterceptorEventCallback

harmony 鸿蒙Input_InterceptorOptions

harmony 鸿蒙Input_KeyEvent

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/N4grjz