API 参考(iOS)
当你需要自定义 iOS 设备行为、将 Midscene 接入依赖 WebDriverAgent 的工作流,或排查 WDA 请求问题时,请查阅本节。关于通用构造函数(报告、Hook、缓存等),请参考平台无关的 API 参考。
Action Space(动作空间)
IOSDevice 使用以下动作空间,Midscene Agent 在规划任务时可以使用这些操作:
Tap—— 点击元素。DoubleClick—— 双击元素。Input—— 输入文本,支持replace/append/clear模式,可选autoDismissKeyboard。Scroll—— 以元素为起点或从屏幕中央向上/下/左/右滚动,支持滚动到顶/底/左/右。DragAndDrop—— 从一个元素拖拽到另一个元素。KeyboardPress—— 按下指定键位。LongPress—— 长按目标元素,可选自定义时长。ClearInput—— 清空输入框内容。Launch—— 打开网页、Bundle ID 或 URL Scheme。RunWdaRequest—— 直接调用 WebDriverAgent REST 接口。IOSHomeButton—— 执行 iOS 系统 Home 操作。IOSAppSwitcher—— 打开 iOS 多任务视图。
IOSDevice
创建一个由 WebDriverAgent 支撑、供 IOSAgent 驱动的设备连接。
导入
构造函数
设备选项
wdaPort?: number—— WebDriverAgent 端口,默认8100。wdaHost?: string—— WebDriverAgent host,默认'localhost'。autoDismissKeyboard?: boolean—— 文 本输入后自动隐藏键盘,默认true。customActions?: DeviceAction<any>[]—— 向 Agent 暴露的额外设备动作。
使用说明
- 请确认已开启开发者模式且 WDA 能访问设备;真机转发端口时可借助
iproxy。 - 通过
wdaHost/wdaPort可指向远程设备或自建的 WDA。 - 通用交互方法请查阅 API 参考(通用)。
示例
快速开始
自定义 Host 与端口
IOSAgent
将 Midscene 的 AI 规划能力绑定到 IOSDevice,通过 WebDriverAgent 实现 UI 自动化。
导入
构造函数
iOS 特有选项
customActions?: DeviceAction<any>[]—— 通过defineAction扩展规划器的可用动作。appNameMapping?: Record<string, string>—— 将友好的应用名称映射到 Bundle Identifier。当你在launch(target)里传入应用名称时,Agent 会在此映射中查找对应的 Bundle ID;若未找到映射,则按原样尝试启动target。用户提供的 appNameMapping 优先级高于默认映射。- 其余字段与 API constructors 一致:
generateReport、reportFileName、aiActionContext、modelConfig、cacheId、createOpenAIClient、onTaskStartTip等。
使用说明
Info
- 一个设备连接对应一个 Agent。
launch、runWdaRequest等 iOS 专属辅助函数也可在 YAML 脚本中使用,语法见 iOS 平台特定动作。- 通用交互方法请查阅 API 参考(通用)。
iOS 特有方法
agent.launch()
打开网页、原生应用或自定义 Scheme。
target: string—— 目标地址(网页 URL、Bundle Identifier、URL scheme、tel/mailto 等)或应用名称。若传入应用名称且在appNameMapping中存在映射,将自动解析为对应 Bundle ID;若未找到映射,则直接按target启动。
agent.runWdaRequest()
当你需要更底层的控制能力时,执行原始的 WebDriverAgent REST 请求。
method: string—— HTTP 动词(GET、POST、DELETE等)。endpoint: string—— WebDriverAgent 接口路径。data?: Record<string, any>—— 可选的 JSON 请求体。
应用间导航
agent.home(): Promise<void>—— 回到主屏。agent.appSwitcher(): Promise<void>—— 打开多任务视图。
辅助工具
agentFromWebDriverAgent()
连接 WebDriverAgent 并返回可用的 IOSAgent。
opts?: PageAgentOpt & IOSDeviceOpt—— 在一个对象中同时传入通用 Agent 选项与IOSDevice的配置。
扩展自定义交互动作
通过 defineAction 创建处理器并传入 customActions,即可扩展 Agent 的动作空间。这些动作会追加在内置动作之后,可在规划阶段被调用。

