成品下载地址:https://www.pan38.com/yun/share.php?code=JCnzE 提取密码:u988
这个Auto.js脚本实现了完整的微信批量加好友功能,包含UI界面、账号列表处理、自动搜索添加、验证消息填写等完整流程。使用时需要确保已授予Auto.js必要的权限,并保持微信在前台运行。代码中包含了详细的错误处理和重试机制,可以适应各种网络环境和界面变化。
源码部分:【仅供学习参考用途哈】
代码语言:txt复制
/**
* Auto.js 4.1 微信批量加好友工具
* 功能:通过手机号/微信号列表自动添加微信好友
* 需要:Android 7.0+、无障碍权限、悬浮窗权限
*/
// ================ 全局配置 ================
const CONFIG = {
delay: 1500, // 操作延迟(毫秒)
maxRetry: 3, // 最大重试次数
searchType: "phone", // phone|wechat
verifyText: "我是测试", // 验证消息
stopOnError: false // 出错时停止
};
// ================ UI界面 ================
ui.layout(
);
// ================ 全局变量 ================
let isRunning = false;
let currentIndex = 0;
let accountList = [];
let successCount = 0;
let failCount = 0;
// ================ 主逻辑 ================
function main() {
// 初始化UI事件
ui.btnStart.click(() => {
if (!checkPermissions()) return;
startProcess();
});
ui.btnStop.click(() => {
stopProcess();
});
ui.rbPhone.on("check", (checked) => {
if (checked) CONFIG.searchType = "phone";
});
ui.rbWechat.on("check", (checked) => {
if (checked) CONFIG.searchType = "wechat";
});
ui.etVerify.on("text_change", (text) => {
CONFIG.verifyText = text;
});
}
function startProcess() {
if (isRunning) return;
// 获取账号列表
const inputText = ui.etAccounts.text().toString().trim();
if (!inputText) {
toast("请输入账号列表");
return;
}
accountList = inputText.split("\n").filter(v => v.trim());
if (accountList.length === 0) {
toast("没有有效的账号");
return;
}
// 重置状态
isRunning = true;
currentIndex = ......
// [此处省略约200行UI交互和状态管理代码]
// 启动添加流程
threads.start(function() {
try {
// 确保在微信主界面
launchWeChat();
// 遍历账号列表
for (let i = 0; i < accountList.length; i++) {
if (!isRunning) break;
currentIndex = i;
const account = accountList[i].trim();
if (!account) continue;
logMsg(`正在处理第 ${i+1}/${accountList.length} 个: ${account}`);
// 执行添加操作
const result = addFriend(account);
if (result) {
successCount++;
logMsg("√ 添加成功");
} else {
failCount++;
logMsg("× 添加失败");
if (CONFIG.stopOnError) break;
}
sleep(CONFIG.delay);
}
// 完成处理
const msg = `处理完成! 成功:${successCount} 失败:${failCount}`;
logMsg(msg);
toast(msg);
} catch (e) {
logMsg("发生错误: " + e);
} finally {
stopProcess();
}
});
}
// ================ 核心功能函数 ================
function addFriend(account) {
let retryCount = 0;
while (retryCount < CONFIG.maxRetry && isRunning) {
try {
// 打开搜索界面
click(desc("搜索").findOne(2000));
sleep(500);
// 输入搜索内容
setText(account);
sleep(1000);
// 处理搜索结果
if (CONFIG.searchType === "phone") {
// 手机号搜索处理
const resultItem = textContains("手机号").findOne(2000);
if (!resultItem) {
logMsg("未找到该手机号用户");
return false;
}
// 点击用户
click(resultItem.bounds().centerX(), resultItem.bounds().centerY());
sleep(1500);
// 检查是否已是好友
if (checkIsFriend()) {
logMsg("已是好友关系");
back();
sleep(500);
return false;
}
} else {
// 微信号搜索处理
const resultItem = textContains("微信号").findOne(2000);
if (!resultItem) {
logMsg("未找到该微信号用户");
return false;
}
// 点击用户
click(resultItem.bounds().centerX(), resultItem.bounds().centerY());
sleep(1500);
}
// 点击添加到通讯录
const addBtn = text("添加到通讯录").findOne(2000);
if (!addBtn) {
logMsg("未找到添加按钮");
back();
sleep(500);
return false;
}
click(addBtn.bounds().centerX(), addBtn.bounds().centerY());
sleep(1000);
// 填写验证消息
if (CONFIG.verifyText) {
const verifyInput = className("EditText").findOne(2000);
if (verifyInput) {
verifyInput.setText(CONFIG.verifyText);
sleep(500);
}
}
// 点击发送
const sendBtn = text("发送").findOne(2000);
if (sendBtn) {
click(sendBtn.bounds().centerX(), sendBtn.bounds().centerY());
sleep(1000);
}
// 返回
back();
sleep(1000);
back();
sleep(1000);
return true;
} catch (e) {
retryCount++;
logMsg(`第${retryCount}次重试: ${e}`);
sleep(2000);
// 返回主界面
while (!desc("搜索").exists()) {
back();
sleep(500);
}
}
}
return false;
}
// ================ 辅助函数 ================
function checkPermissions() {
// [此处省略约50行权限检查代码]
return true;
}
function launchWeChat() {
// [此处省略约30行微信启动检测代码]
}
function checkIsFriend() {
// [此处省略约20行好友关系检查代码]
return false;
}
function logMsg(msg) {
// [此处省略约30行日志记录代码]
}
function stopProcess() {
// [此处省略约20行停止处理代码]
}
// ================ 启动入口 ================
main();