RPA App 支持通过 adb push
命令直接推送 JavaScript 脚本文件到设备,应用会自动扫
描并加载这些外部脚本。这个功能让开发者可以快速测试和部署自动化脚本,无需重新构建
应用。
/sdcard/rpa-scripts/
[外部]
标签设备存储结构:
├── /sdcard/rpa-scripts/ # 外部脚本目录 (adb push)
│ ├── test-external-script.js
│ ├── wifi-settings-script.js
│ └── automation-sequence.js
└── /data/data/com.rpaapp/files/
└── rpa-scripts/ # 内部脚本目录 (应用内置)
├── hello-world.js
├── system-settings.js
└── ...
# 在设备上创建外部脚本目录
adb shell mkdir -p /sdcard/rpa-scripts
# 推送单个脚本
adb push your-script.js /sdcard/rpa-scripts/
# 推送多个脚本
adb push script1.js script2.js /sdcard/rpa-scripts/
# 推送整个目录
adb push ./scripts/ /sdcard/rpa-scripts/
# 查看推送的脚本文件
adb shell ls -la /sdcard/rpa-scripts/
[外部]
标签的脚本// 脚本描述注释
// 通过 adb push 推送的外部脚本
console.log('🚀 脚本开始执行');
console.log('脚本来源: adb push');
// 你的自动化逻辑
RPAServiceModule.start();
// 返回 Promise (可选)
return new Promise(function (resolve, reject) {
// 异步操作
setTimeout(function () {
console.log('脚本执行完成');
resolve('执行成功');
}, 1000);
});
// RPA 服务模块
RPAServiceModule.start(); // 启动 RPA 服务
RPAServiceModule.launchSettings(); // 启动系统设置
RPAServiceModule.launchWifiSettings(); // 启动 WiFi 设置
RPAServiceModule.launchBluetoothSettings(); // 启动蓝牙设置
RPAServiceModule.launchAppByPackage(packageName); // 启动指定应用
// 全局对象
console.log(); // 控制台输出
Alert.alert(title, message); // 显示弹窗
setTimeout(callback, delay); // 延时执行
Promise; // Promise 支持
⚠️ 重要: 脚本必须使用 ES5 语法,不支持 ES6+ 特性:
// ✅ 正确的 ES5 语法
var message = "Hello World";
function myFunction() {
return "result";
}
// ❌ 不支持的 ES6+ 语法
const message = "Hello World"; // 使用 var 替代
let count = 0; // 使用 var 替代
() => {} // 使用 function() {} 替代
`template ${string}` // 使用 "string" + variable 替代
async/await // 使用 Promise.then() 替代
// test-external-script.js
console.log('🚀 外部脚本开始执行');
console.log('脚本来源: adb push');
RPAServiceModule.start();
return RPAServiceModule.launchAppByPackage('com.android.calculator2').then(
function (result) {
Alert.alert('测试完成', '计算器启动成功: ' + result);
return result;
},
);
// wifi-settings-script.js
console.log('🔧 WiFi 设置脚本开始执行');
return RPAServiceModule.launchWifiSettings().then(function (result) {
Alert.alert('WiFi 设置', 'WiFi 设置已启动!');
return result;
});
// automation-sequence.js
console.log('🤖 自动化序列开始执行');
var steps = ['启动服务', '打开设置', '启动计算器'];
var currentStep = 0;
function executeNextStep() {
if (currentStep >= steps.length) {
Alert.alert('完成', '自动化序列执行完成!');
return Promise.resolve('完成');
}
var step = steps[currentStep++];
console.log('执行步骤: ' + step);
// 根据步骤执行不同操作
switch (currentStep) {
case 1:
return Promise.resolve(RPAServiceModule.start());
case 2:
return RPAServiceModule.launchSettings();
case 3:
return RPAServiceModule.launchAppByPackage('com.android.calculator2');
default:
return Promise.resolve('未知步骤');
}
}
// 递归执行所有步骤
function runSequence() {
return executeNextStep().then(function (result) {
if (currentStep < steps.length) {
return runSequence();
}
return result;
});
}
return runSequence();
# 1. 编写脚本
vim my-automation.js
# 2. 推送到设备
adb push my-automation.js /sdcard/rpa-scripts/
# 3. 在应用中测试
# (无需重新构建应用)
# 4. 修改脚本
vim my-automation.js
# 5. 重新推送
adb push my-automation.js /sdcard/rpa-scripts/
# 6. 刷新应用测试
# 创建本地脚本目录
mkdir external-scripts
cd external-scripts
# 编写多个脚本
echo "console.log('Script 1');" > script1.js
echo "console.log('Script 2');" > script2.js
# 批量推送
adb push . /sdcard/rpa-scripts/
# 清理远程脚本
adb shell rm -rf /sdcard/rpa-scripts/*
权限被拒绝
# 确保设备已授予存储权限
adb shell pm grant com.rpaapp android.permission.WRITE_EXTERNAL_STORAGE
adb shell pm grant com.rpaapp android.permission.READ_EXTERNAL_STORAGE
脚本不显示
# 检查文件是否推送成功
adb shell ls -la /sdcard/rpa-scripts/
# 重启应用
adb shell am force-stop com.rpaapp
adb shell am start -n com.rpaapp/.MainActivity
脚本执行失败
# 查看应用日志
adb logcat -s ReactNativeJS
// 在脚本中添加详细日志
console.log('=== 脚本开始 ===');
console.log('当前时间:', new Date().toLocaleString());
console.log('脚本参数:', arguments);
try {
// 你的代码
var result = RPAServiceModule.start();
console.log('操作成功:', result);
} catch (error) {
console.error('操作失败:', error);
Alert.alert('错误', '脚本执行失败: ' + error);
}
console.log('=== 脚本结束 ===');
wifi-settings.js
、app-launcher.js
# 使用 Git 管理脚本
git init external-scripts
cd external-scripts
# 添加脚本文件
git add *.js
git commit -m "Add automation scripts"
# 推送到设备
adb push . /sdcard/rpa-scripts/
通过 adb push 功能,您可以快速迭代和测试自动化脚本,大大提高开发效率!🚀