ts-universal-attributes-component-id.md 2.5 KB
Newer Older
Z
zengyawen 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
# 组件标识

> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。


## 权限列表




## 属性

| 名称 | 参数说明 | 默认值 | 描述 | 
| -------- | -------- | -------- | -------- |
| id | string | '' | 组件的唯一标识,唯一性由使用者保证。 | 


## 接口


### getInspectorByKey

getInspectorByKey(id: string): string

获取指定id的组件的所有属性,不包括子组件信息。

- 参数
  | 参数 | 类型 | 必填 | 默认值 | 描述 | 
  | -------- | -------- | -------- | -------- | -------- |
  | id | string | 是 | - | 要获取属性的组件id。 | 

- 返回值
  | 类型 | 描述 | 
  | -------- | -------- |
  | string | 组件属性列表的JSON字符串。 | 


### sendEventByKey

sendEventByKey(id: string, action: number, params: string): boolean

给指定id的组件发送事件。

- 参数
  | 参数 | 类型 | 必填 | 默认值 | 描述 | 
  | -------- | -------- | -------- | -------- | -------- |
  | id | string | 是 | - | 要触发事件的组件的id。 | 
  | action | number | 是 | - | 要触发的事件类型,目前支持取值:<br/>-&nbsp;点击事件Click:&nbsp;10<br/>-&nbsp;长按事件LongClick:&nbsp;11。 | 
  | params | string | 是 | - | 事件参数,无参数传空字符串&nbsp;""。 | 

- 返回值
  | 类型 | 描述 | 
  | -------- | -------- |
  | boolean | 找不到指定id的组件时返回false,其余情况返回true。 | 


## 示例

H
geshi  
HelloCrease 已提交
60 61
```ts
// xxx.ets
Z
zengyawen 已提交
62 63 64 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 91 92 93 94 95 96 97 98 99 100 101 102 103
@Entry
@Component
struct IdExample {
  build() {
    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
      Button() {
        Text('click')
          .fontSize(25)
          .fontWeight(FontWeight.Bold)
      }
      .type(ButtonType.Capsule)
      .margin({
        top: 20
      }).onClick(() => {
        console.info(getInspectorByKey("click"))
        console.info(getInspectorTree())
        setTimeout(() => {
          sendEventByKey("longclick", 11, "")
        }, 2000)
      }).id('click')

      Button() {
        Text('longclick')
          .fontSize(25)
          .fontWeight(FontWeight.Bold)
      }
      .type(ButtonType.Capsule)
      .margin({
        top: 20
      })
      .backgroundColor('#0D9FFB')
      .gesture(
        LongPressGesture().onActionEnd(() => {
          console.info('long clicked')
        }))
      .id('longclick')
    }
    .width('100%')
    .height('100%')
  }
}
```