多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

iOS 自动化脚本怎么输入文字:代理、输入法与快捷指令三级方案

iOS 自动化脚本怎么输入文字:代理、输入法与快捷指令三级方案 iOS 自动化脚本怎么输入文字代理、输入法与快捷指令三级方案本文讲的是EasyClick iPhone 的免越狱、免签名自动化不需要越狱也不需要给应用签名。示例环境为中控端程序 真机涉及坐标、等待、重试这些工程细节适合做移动端自动化或测试的同学参考。一、输入文字EasyClick iOS 自动化最容易卡住的一环点击、滑动、截图都有成熟方案但往输入框里打字在 iOS 上特别麻烦——系统不允许第三方 App 随意写入文本这是 iOS 安全机制决定的。安卓可以通过无障碍服务或 IME 直接输入iOS 没有类似的开放接口。EasyClick 的 iOS USB 版本提供了三级输入方案按你手上的条件从优到劣排列级别方案需要什么函数/模块体验第一级代理输入代理 IPAinputText最直接高效第二级自定义输入法EC 脱机版主程序imeApi模块接近原生输入法第三级快捷指令助手电脑端助手程序 快捷指令剪贴板粘贴配置繁琐但可复用三种方案互不冲突可以按设备情况混用——同一套中控里有代理的设备用 inputText没代理的设备用 imeApi 或快捷指令助手。二、第一级代理模式 inputText最直接如果你有代理 IPA 并能启动自动化直接使用代理模式输入inputText(要输入的文字);2.1 优点最直接高效一行代码完成输入无需额外配置兼容性好支持输入到任意可编辑文本框功能完整配合代理模式的其他能力节点、相册等实现完整的业务闭环。2.2 前提必须安装代理 IPA 并启动自动化服务——这是签名方案才有的能力。如果设备没有签名、没有代理 IPA就无法使用 inputText需要降级到第二级或第三级方案。2.3 注意事项确保输入框已获得焦点先点击输入框再调 inputText部分特殊输入框如密码框可能有输入限制需测试验证输入中文时确保编码正确避免乱码长文本输入时注意超时设置避免因输入时间过长导致脚本中断。2.4 inputText 的工作原理代理模式下inputText通过代理 IPA 的系统级权限直接向当前焦点控件写入文本。这相当于模拟了系统输入法的输入行为但跳过了键盘交互过程直接以 API 调用的方式完成。因此它的速度最快、兼容性最好但也最依赖代理 IPA 的系统能力——一旦代理 IPA 不可用inputText 就无法工作。三、第二级imeApi 自定义输入法免代理没有代理 IPA但装了EasyClick 脱机版本主程序作为输入法时可以通过 imeApi 模块实现文字输入。3.1 配置步骤在手机上安装 EC 脱机版本主程序在手机输入法列表中启用 EC 脱机版主程序输入法设置 → 通用 → 键盘 → 添加新键盘先开启转发服务imeApi.forwardImeServer();// 开启转发后续 imeApi 函数才能调用再调用其他 imeApi 函数完成输入。3.2 优点免代理也能输入不需要签名 IPA只需要脱机版主程序输入体验接近原生输入法通过系统输入法机制写入文本兼容性好。3.3 前提需要脱机版主程序可配合免费签名方案安装。如果连脱机版主程序都没有只能降级到第三级方案。3.4 注意事项forwardImeServer在脚本初始化阶段调用一次即可不需要每次输入前都调用确保输入法已切换到 EasyClick 脱机版主程序否则输入会失败如果输入无反应检查输入法是否被系统自动切换回原生输入法iOS 系统可能提示允许完全访问权限需要在输入法设置中开启否则 imeApi 无法正常工作。3.5 imeApi 方案的工作原理EasyClick 脱机版主程序注册为系统输入法后imeApi.forwardImeServer会在手机上启动一个本地转发服务。脚本调用 imeApi 输入函数时指令通过转发服务传递给输入法输入法再以系统输入法的身份向当前焦点控件写入文本。这种方式的巧妙之处在于不需要代理 IPA 的系统级权限而是利用了 iOS 输入法框架的合法接口。四、第三级快捷指令助手零安装兜底前两个都没有用快捷指令兜底原理是复制到剪贴板 粘贴——通过 iOS 快捷指令请求电脑端接口获取内容写入剪贴板再触发粘贴操作。4.1 配置步骤到 EC 官方网盘下载iOS 资源 → iOS 快捷指令助手.zip解压后双击运行电脑端手机快捷指令新建指令请求网站接口内容 → 复制到剪贴板接口地址形如http://192.168.2.26:8696电脑 IPkey4eb2e1c1是手机唯一标识可用蓝牙 MAC 地址用于区分是哪台手机加设备震动动作保证后台也能取到数据放入剪贴板最后回调suc接口告知程序执行成功手机「设置 → 辅助功能 → 键盘与键入 → 全键盘控制 → 命令」给这条快捷指令绑定快捷键中控右键 → 蓝牙/OTG HID 设置 →新增键盘快捷键绑定组合键如 guiu点击发送再次进入新增快捷键输入相同组合键发送即可看到快捷指令执行效果脚本中调用对应事件函数触发。4.2 配置要点说明配置项说明电脑 IP运行快捷指令助手的电脑的局域网 IPkey 参数手机唯一标识用蓝牙 MAC 地址区分不同手机设备震动保证快捷指令在后台也能执行并取到数据suc 回调通知程序执行成功便于脚本判断输入是否完成快捷键绑定全键盘控制命令中绑定中控中映射到 gui字符组合键配置稍繁琐但配好后可以分享给其他手机复用——把快捷指令分享过去在中控绑定快捷键即可。4.3 视频/图片插入同样思路没有代理时用快捷指令下载视频到相册新建指令取两次「获取 URL 内容」——第一次拿真实资源地址第二次拿资源内容绑定 guii 快捷键脚本中触发即可插入相册。快捷指令流程 获取URL内容(接口地址) → 得到真实资源URL ↓ 获取URL内容(真实资源URL) → 得到资源内容 ↓ 存储到相册 → 回调 suc五、三种方案怎么选你的环境推荐方案一句话理由有代理 IPAinputText最直接高效一行代码完成输入无代理但有脱机主程序imeApi免签名也能打字体验接近原生都没有快捷指令助手零安装兜底可分享复用混合设备群按设备混用方案互不冲突中控按设备类型选5.1 混用方案设计如果你的设备群中有不同条件的设备可以在脚本中按设备类型选择输入方案// 伪代码按设备条件选择输入方案if(hasAgent){inputText(文字内容);// 有代理}elseif(hasMainApp){imeApi.forwardImeServer();// 有脱机主程序imeApi.inputText(文字内容);}else{bleEvent.keyPressChar(u);// 快捷指令助手}这种设计让一套中控同时管理不同条件的设备每台设备用最适合的方案输入文字。实际部署时建议在设备台账中标注每台设备支持的输入方案脚本运行时自动匹配避免因方案不匹配导致输入失败。5.3 输入失败排查现象可能原因处理inputText 无反应代理未启动或输入框未获焦点确认代理运行状态先点击输入框imeApi 无反应转发服务未开启或输入法未切换调 forwardImeServer切换到 EC 输入法快捷指令不触发快捷键未绑定或助手未运行检查中控快捷键绑定确认电脑端助手在运行输入乱码编码问题确保脚本文件编码为 UTF-8后台无法输入快捷指令被系统挂起确认设备震动动作已添加5.2 方案对比总结维度inputTextimeApi快捷指令助手需要代理是否否需要主程序否是否配置复杂度最低中等较高输入速度最快快较慢网络请求可复用性每台都可用每台装主程序配好后可分享适用场景有签名设备免签名有主程序零安装兜底六、FAQQ1iOS 自动化脚本怎么输入文字A按环境分三级装了代理 IPA 用 inputText装了 EC 脱机版主程序用 imeApi 输入法模块先开启 forwardImeServer 转发都没有则用快捷指令助手把内容复制到剪贴板再粘贴。Q2inputText 输入有什么前提A需要有代理 IPA 并能启动自动化。代理模式下 inputText 是最直接高效的输入方式支持输入到任意可编辑文本框。Q3imeApi 输入法方案怎么用A在手机上安装 EC 脱机版本主程序作为输入法先调用imeApi.forwardImeServer开启转发服务之后即可调用其他 imeApi 函数完成输入适合无代理 IPA 但有主程序的场景。Q4快捷指令助手输入文字的原理是什么A手机快捷指令请求电脑端iOS 快捷指令助手的接口如http://电脑IP:8696把返回内容写入剪贴板并触发粘贴通过设备震动保证后台也能取到数据最后回调 suc 通知程序完成。Q5三种输入方案怎么选A有代理 → inputText无代理有主程序 → imeApi都没有 → 快捷指令助手。方案不冲突可按设备情况混用。Q6快捷指令助手配置好后能复用吗A可以。配置好的快捷指令可以分享给其他手机使用不用每台手机都重新配置。只需要在中控给每台手机绑定对应的键盘快捷键即可是免签名场景下的实用兜底方案。Q7没有代理时怎么插入图片/视频到相册A用快捷指令的「获取 URL 内容」功能第一次获取真实资源地址第二次获取资源内容并保存到相册。绑定 guii 快捷键后脚本中触发即可实现免代理插入相册。Q8imeApi 输入法需要每次都调 forwardImeServer 吗AforwardImeServer是开启转发服务建议在脚本初始化阶段调用一次。开启后后续的 imeApi 输入函数都能正常工作不需要每次输入前都调用。Q9三种方案能混用吗A能。方案互不冲突可以按设备情况混用有代理的设备用 inputText无代理有主程序的设备用 imeApi都没有的设备用快捷指令助手一套中控里按设备类型选择对应方案。
返回列表