Lynx

UITree

本页面介绍 Lynx DevTool 支持的 UITree CDP domain。

实验性参考

此生成的参考文档仍在完善中。

  • CDP events 尚未包含。
  • 部分 Lynx 扩展已列出,但尚未提供详细文档。
  • 方法说明尚未根据实现自动校验,可能不完整或不准确。

在依赖本参考前,请根据实现及所链接的 upstream CDP reference 验证实际行为。

概览

  • 作用域:instance
  • CDP domain:Lynx 专有

Lynx 扩展

UITree.disable

Disables Lynx UI tree inspection methods on the current target.

  • Origin: lynx-extension
  • Source: devtool/lynx_devtool/agent/domain_agent/inspector_ui_tree_agent.cc
参数

无参数。

返回字段

无返回字段。

备注
  • Dispatches through LynxDevToolMediator to InspectorUIExecutor on the UI thread.
  • Clears the UI tree enabled flag used by UITree.getLynxUITree, UITree.getUIInfoForNode, and UITree.setUIStyle.
  • Returns an empty result object.
  • The native implementation does not read request params.
  • If the mediator has no UI task runner, the current handler does not send an explicit CDP response.
示例

Disable UI tree inspection

Request:

{
  "id": 1,
  "method": "UITree.disable"
}

Response:

{
  "id": 1,
  "result": {}
}

UITree.enable

Enables Lynx UI tree inspection methods on the current target.

  • Origin: lynx-extension
  • Source: devtool/lynx_devtool/agent/domain_agent/inspector_ui_tree_agent.cc
参数
NameTypeRequiredDescription
useCompressionbooleanNoWhether UITree.getLynxUITree should compress a large root payload before returning it.
compressionThresholdbooleanNoCurrent native code reads this field as a boolean. true stores threshold 1 and false stores threshold 0.
返回字段

无返回字段。

备注
  • Dispatches through LynxDevToolMediator to InspectorUIExecutor on the UI thread.
  • Sets the UI tree enabled flag used by UITree.getLynxUITree, UITree.getUIInfoForNode, and UITree.setUIStyle.
  • Returns an empty result object.
  • The default compression threshold before this method changes it is 10240 bytes.
  • If the mediator has no UI task runner, the current handler does not send an explicit CDP response.
示例

Enable UI tree inspection

Request:

{
  "id": 1,
  "method": "UITree.enable",
  "params": {
    "useCompression": true,
    "compressionThreshold": true
  }
}

Response:

{
  "id": 1,
  "result": {}
}

UITree.getLynxUITree

Returns the platform Lynx UI tree for the current page.

  • Origin: lynx-extension
  • Source: devtool/lynx_devtool/agent/domain_agent/inspector_ui_tree_agent.cc
参数

无参数。

返回字段
NameTypeDescription
rootobject|string|nullParsed platform UI tree root when uncompressed, a base64-encoded compressed string when result.compress is true, or null when the platform returns no tree string.
compressbooleanWhether result.root was zlib-compressed and base64-encoded by the native handler.
root.namestringPlatform UI class or tag name.
root.idintegerPlatform UI node id.
root.tagNamestringLynx tag name. Present on Android and Darwin tree payloads.
root.nodeIndexintegerLynx node index. Present on Android and Darwin tree payloads.
root.propsobjectPlatform serialized Lynx props. Present on Android and Darwin tree payloads.
root.labelstringAccessibility label when the platform includes it.
root.framearrayFour numeric values for the UI frame. The order is left, top, width, and height.
root.childrenarrayChild UI nodes serialized with the same platform-owned shape.
备注
  • Requires UITree.enable first. If UI tree inspection is not enabled, the current handler returns without sending a CDP response.
  • Dispatches through LynxDevToolMediator to InspectorUIExecutor on the UI thread.
  • The platform facade returns a JSON string, and the executor parses that string into result.root.
  • Android and Darwin include name, id, tagName, nodeIndex, props, label, frame, and children. Harmony includes name, id, frame, and children.
  • If compression is enabled and the serialized root exceeds the stored threshold, result.compress is true and result.root is a compressed base64 string.
  • The native implementation does not read request params.
  • If the mediator has no UI task runner or the platform facade is unavailable, the current handler does not send an explicit CDP response.
示例

Read the Lynx UI tree

Request:

{
  "id": 1,
  "method": "UITree.getLynxUITree"
}

Response:

{
  "id": 1,
  "result": {
    "compress": false,
    "root": {
      "name": "com.lynx.tasm.behavior.ui.view.UIView",
      "id": 1,
      "tagName": "view",
      "nodeIndex": 0,
      "props": {},
      "label": "",
      "frame": [0, 0, 390, 844],
      "children": []
    }
  }
}

UITree.getUIInfoForNode

Returns detailed platform UI information for one Lynx UI node.

  • Origin: lynx-extension
  • Source: devtool/lynx_devtool/agent/domain_agent/inspector_ui_tree_agent.cc
参数
NameTypeRequiredDescription
UINodeIdintegerYesPlatform UI node id to inspect.
返回字段
NameTypeDescription
idintegerPlatform UI node id returned by the platform helper.
isFlattenbooleanAndroid-only flag indicating whether the UI node is flattened.
editablePropsobjectEditable UI properties exposed by the platform helper.
editableProps.borderarrayFour border-width values in the order top, right, bottom, and left.
editableProps.marginarrayFour margin values in the order top, right, bottom, and left.
editableProps.framearrayFour frame values in the order left, top, width, and height.
editableProps.visibleboolean|integerPlatform visibility value.
readonlyPropsobjectAndroid root-level readonly properties such as location, clickability, scrollability, text, test id, and event metadata.
uiobjectPlatform UI object metadata.
ui.namestringPlatform UI class or tag name.
ui.readonlyPropsobjectReflection-derived platform UI fields.
viewobjectPlatform view metadata when the platform exposes a backing view object.
view.namestringPlatform view class name.
view.readonlyPropsobjectReflection-derived platform view fields.
layersobjectDarwin-only layer metadata for the view and Lynx background or border layers.
备注
  • Requires UITree.enable first. If UI tree inspection is not enabled, the current handler returns without sending a CDP response.
  • Dispatches through LynxDevToolMediator to InspectorUIExecutor on the UI thread.
  • The platform facade returns a JSON string, and the executor parses that string directly into result.
  • If the platform returns an empty string or the node id cannot be resolved, the current handler returns an empty result object.
  • Android, Darwin, and Harmony expose different platform-owned details. Consumers should tolerate missing optional fields.
  • If the mediator has no UI task runner or the platform facade is unavailable, the current handler does not send an explicit CDP response.
示例

Read UI information for one node

Request:

{
  "id": 1,
  "method": "UITree.getUIInfoForNode",
  "params": {
    "UINodeId": 42
  }
}

Response:

{
  "id": 1,
  "result": {
    "id": 42,
    "editableProps": {
      "border": [0, 0, 0, 0],
      "margin": [0, 0, 0, 0],
      "frame": [0, 0, 100, 50],
      "visible": true
    },
    "ui": {
      "name": "com.lynx.tasm.behavior.ui.view.UIView",
      "readonlyProps": {}
    },
    "view": {
      "name": "android.view.View",
      "readonlyProps": {}
    }
  }
}

UITree.setUIStyle

Applies an editable style value to a Lynx UI node through the platform helper.

  • Origin: lynx-extension
  • Source: devtool/lynx_devtool/agent/domain_agent/inspector_ui_tree_agent.cc
参数
NameTypeRequiredDescription
UINodeIdintegerYesPlatform UI node id to mutate.
styleNamestring (frame | margin | border | visible | background-color | border-color)YesEditable style name.
styleContentstringYesStyle value string. frame, margin, and border use four comma or whitespace separated numbers. color styles use eight-digit RGBA hex values. visible uses true or false on Android and Darwin, while Harmony treats false and 0 as hidden.
返回字段
NameTypeDescription
errorobjectPresent inside result when the platform helper returns -1.
error.codeintegerAlways -32000 when present.
error.messagestringAlways set ui style fail when present.
备注
  • Requires UITree.enable first. If UI tree inspection is not enabled, the current handler returns without sending a CDP response.
  • Dispatches through LynxDevToolMediator to InspectorUIExecutor on the UI thread.
  • The handler forwards params.UINodeId, params.styleName, and params.styleContent to DevToolPlatformFacade::SetUIStyle.
  • The response is an empty result object when the platform return value is not -1.
  • When the platform return value is -1, the response still uses result.error rather than a top-level CDP error.
  • Android, Darwin, and Harmony support frame, margin, border, visible, background-color, and border-color, but unsupported or invalid inputs do not produce identical platform return values.
  • If the mediator has no UI task runner or the platform facade is unavailable, the current handler does not send an explicit CDP response.
示例

Update a UI frame

Request:

{
  "id": 1,
  "method": "UITree.setUIStyle",
  "params": {
    "UINodeId": 42,
    "styleName": "frame",
    "styleContent": "0,0,100,50"
  }
}

Response:

{
  "id": 1,
  "result": {}
}

Failed style update

Request:

{
  "id": 2,
  "method": "UITree.setUIStyle",
  "params": {
    "UINodeId": 42,
    "styleName": "frame",
    "styleContent": "invalid"
  }
}

Response:

{
  "id": 2,
  "result": {
    "error": {
      "code": -32000,
      "message": "set ui style fail"
    }
  }
}
除非另有说明,本项目采用知识共享署名 4.0 国际许可协议进行许可,代码示例采用 Apache License 2.0 许可协议进行许可。