/** * adb method: input — 输入文本(支持 clear 清空) */ async function run(action, ctx) { const { device, folderPath, variableContext, api, extractVarName, resolveValue } = ctx const inVars = action.inVars || [] let inputValue = inVars.length > 0 ? variableContext[extractVarName(inVars[0])] : null if (!inputValue && action.value) inputValue = resolveValue(action.value, variableContext) if (!inputValue) return { success: false, error: 'input 操作缺少输入内容' } if (action.clear) { for (let i = 0; i < 200; i++) { const clearResult = await api.sendKeyEvent(device, '67') if (!clearResult.success) break await new Promise((r) => setTimeout(r, 10)) } await new Promise((r) => setTimeout(r, 200)) } if (!api?.sendText) return { success: false, error: '输入 API 不可用' } const textResult = await api.sendText(device, String(inputValue)) if (!textResult.success) return { success: false, error: `输入失败: ${textResult.error != null ? textResult.error : 'unknown'}` } return { success: true } } module.exports = { run }