dispatchKeyEvent method

Future<void> dispatchKeyEvent(
  1. @Enum(['keyDown', 'keyUp', 'rawKeyDown', 'char']) String type, {
  2. int? modifiers,
  3. TimeSinceEpoch? timestamp,
  4. String? text,
  5. String? unmodifiedText,
  6. String? keyIdentifier,
  7. String? code,
  8. String? key,
  9. int? windowsVirtualKeyCode,
  10. int? nativeVirtualKeyCode,
  11. bool? autoRepeat,
  12. bool? isKeypad,
  13. bool? isSystemKey,
  14. int? location,
  15. List<String>? commands,
})

Dispatches a key event to the page. type Type of the key event. modifiers Bit field representing pressed modifier keys. Alt=1, Ctrl=2, Meta/Command=4, Shift=8 (default: 0). timestamp Time at which the event occurred. text Text as generated by processing a virtual key code with a keyboard layout. Not needed for for keyUp and rawKeyDown events (default: "") unmodifiedText Text that would have been generated by the keyboard if no modifiers were pressed (except for shift). Useful for shortcut (accelerator) key handling (default: ""). keyIdentifier Unique key identifier (e.g., 'U+0041') (default: ""). code Unique DOM defined string value for each physical key (e.g., 'KeyA') (default: ""). key Unique DOM defined string value describing the meaning of the key in the context of active modifiers, keyboard layout, etc (e.g., 'AltGr') (default: ""). windowsVirtualKeyCode Windows virtual key code (default: 0). nativeVirtualKeyCode Native virtual key code (default: 0). autoRepeat Whether the event was generated from auto repeat (default: false). isKeypad Whether the event was generated from the keypad (default: false). isSystemKey Whether the event was a system key event (default: false). location Whether the event was from the left or right side of the keyboard. 1=Left, 2=Right (default: 0). commands Editing commands to send with the key event (e.g., 'selectAll') (default: []). These are related to but not equal the command names used in document.execCommand and NSStandardKeyBindingResponding. See https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/editing/commands/editor_command_names.h for valid command names.

Implementation

Future<void> dispatchKeyEvent(
  @Enum(['keyDown', 'keyUp', 'rawKeyDown', 'char']) String type, {
  int? modifiers,
  TimeSinceEpoch? timestamp,
  String? text,
  String? unmodifiedText,
  String? keyIdentifier,
  String? code,
  String? key,
  int? windowsVirtualKeyCode,
  int? nativeVirtualKeyCode,
  bool? autoRepeat,
  bool? isKeypad,
  bool? isSystemKey,
  int? location,
  List<String>? commands,
}) async {
  assert(const ['keyDown', 'keyUp', 'rawKeyDown', 'char'].contains(type));
  await _client.send('Input.dispatchKeyEvent', {
    'type': type,
    if (modifiers != null) 'modifiers': modifiers,
    if (timestamp != null) 'timestamp': timestamp,
    if (text != null) 'text': text,
    if (unmodifiedText != null) 'unmodifiedText': unmodifiedText,
    if (keyIdentifier != null) 'keyIdentifier': keyIdentifier,
    if (code != null) 'code': code,
    if (key != null) 'key': key,
    if (windowsVirtualKeyCode != null)
      'windowsVirtualKeyCode': windowsVirtualKeyCode,
    if (nativeVirtualKeyCode != null)
      'nativeVirtualKeyCode': nativeVirtualKeyCode,
    if (autoRepeat != null) 'autoRepeat': autoRepeat,
    if (isKeypad != null) 'isKeypad': isKeypad,
    if (isSystemKey != null) 'isSystemKey': isSystemKey,
    if (location != null) 'location': location,
    if (commands != null) 'commands': [...commands],
  });
}