ts-universal-events-key.md 2.6 KB
Newer Older
Z
zengyawen 已提交
1
# Key Event
Z
zengyawen 已提交
2

Z
zengyawen 已提交
3

E
esterzhou 已提交
4
> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
Z
zengyawen 已提交
5 6 7 8
> This method is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version.


## Required Permissions
Z
zengyawen 已提交
9 10 11

None

Z
zengyawen 已提交
12 13 14

## Events

E
esterzhou 已提交
15
| Name | Bubble Supported | Description |
Z
zengyawen 已提交
16
| -------- | -------- | -------- |
E
esterzhou 已提交
17
| onKeyEvent(event: (event?: KeyEvent) => void) | Yes | Called when a key event occurs. For details about the event parameters, see [KeyEvent Object](#KeyEvent Object). |
Z
zengyawen 已提交
18 19 20 21 22 23 24


### KeyEvent Object

- Attributes
    | Name | Type | Description | 
  | -------- | -------- | -------- |
E
esterzhou 已提交
25 26 27 28 29 30 31
  | type | KeyType | Type of a key. | 
  | keyCode | number | Key code. | 
  | keyText | string | Key value. | 
  | keySource | KeySource | Type of the input device that triggers the key event. | 
  | deviceId | number | ID of the input device that triggers the key event. | 
  | metaKey | number | State of the metakey when the key is pressed. The value **1** means the pressed state, and **0** means the unpressed state. | 
  | timestamp | number | Timestamp when the key is pressed. | 
Z
zengyawen 已提交
32 33 34 35

- APIs
    | Name | Description | 
  | -------- | -------- |
E
esterzhou 已提交
36
  | stopPropagation(): void | Stops the event from bubbling upwards or downwards. | 
Z
zengyawen 已提交
37 38 39 40

- KeyType enums
    | Name | Description | 
  | -------- | -------- |
E
esterzhou 已提交
41 42
  | Down | The key is pressed. | 
  | Up | The key is released. | 
Z
zengyawen 已提交
43 44 45 46 47


- KeySource enums
    | Name | Description | 
  | -------- | -------- |
E
esterzhou 已提交
48 49
  | Unknown | Unknown input device. | 
  | Keyboard | The input device is a keyboard. | 
Z
zengyawen 已提交
50 51

- Common KeyCode description
E
esterzhou 已提交
52
    | Value | Behavior | Physical Button | 
Z
zengyawen 已提交
53
  | -------- | -------- | -------- |
E
esterzhou 已提交
54 55 56 57 58 59 60
  | 19 | Upward | Up button. | 
  | 20 | Downward | Down button. | 
  | 21 | Leftward | Left button. | 
  | 22 | Rightward | Right button. | 
  | 23 | OK | **OK** key on a remote control. | 
  | 66 | OK | **Enter** key on a keyboard. | 
  | 160 | OK | **Enter** button on the numeric keypad. | 
Z
zengyawen 已提交
61 62 63 64


## Example

Z
zengyawen 已提交
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90

```
@Entry
@Component
struct KeyEventExample {
  @State text: string = ''
  @State eventType: string = ''

  build() {
    Column() {
      Button('KeyEvent').backgroundColor(0x2788D9)
        .onKeyEvent((event: KeyEvent) => {
          if (event.type === KeyType.Down) {
            this.eventType = 'Down'
          }
          if (event.type === KeyType.Up) {
            this.eventType = 'Up'
          }
          console.info(this.text = 'KeyType:' + this.eventType + '\nkeyCode:' + event.keyCode + '\nkeyText:' + event.keyText)
        })
      Text(this.text).padding(15)
    }.height(300).width('100%').padding(35)
  }
}
```

Z
zengyawen 已提交
91
![en-us_image_0000001257058433](figures/en-us_image_0000001257058433.gif)