Capacitor应用中cordova-plugin-shell执行input tap命令报错(错误码100)求助
解决Capacitor中执行
input tap命令报错的问题 核心原因
cordova-plugin-shell直接执行带空格的完整命令字符串时,会把整个内容当作单个命令名解析,系统自然找不到input tap 500 500这个命令;另外部分设备环境变量未包含input命令的路径,也会导致执行失败。
可行解决方案
方案1:拆分命令与参数执行
插件的exec方法支持单独传入命令和参数数组,从根源避免空格解析问题:
cordova.plugins.shell.exec( 'input', ['tap', '500', '500'], (output) => console.log('执行成功:', output), (error) => console.log('执行失败:', error) );
方案2:指定input命令完整路径
如果设备环境变量未配置input的路径,直接使用其系统默认路径(通常为/system/bin/input):
cordova.plugins.shell.exec( '/system/bin/input', ['tap', '500', '500'], (output) => console.log('执行成功:', output), (error) => console.log('执行失败:', error) );
方案3:用sh -c包裹命令
若必须使用单字符串形式,通过sh -c让shell解析完整命令:
cordova.plugins.shell.exec( 'sh', ['-c', 'input tap 500 500'], (output) => console.log('执行成功:', output), (error) => console.log('执行失败:', error) );
前置验证步骤
先确认设备中input命令的实际路径,避免路径错误:
cordova.plugins.shell.exec( 'which', ['input'], (path) => console.log('input命令路径:', path), (error) => console.log('未找到input命令:', error) );
如果返回具体路径,直接替换上述方案中的input或/system/bin/input即可。
内容的提问来源于stack exchange,提问作者Dmitry_Ivanov
相关产品推荐
相关产品推荐

