# autojs **Repository Path**: sushile/autojs ## Basic Information - **Project Name**: autojs - **Description**: autojs 开发的js脚本 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-07 - **Last Updated**: 2025-10-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AutoJS 短信验证码监听器 本项目包含两个短信验证码监听脚本,可以自动监听短信验证码并进行处理。 ## 文件说明 ### 1. `sms_listener.js` - 完整版 功能丰富的短信监听器,包含以下特性: - 完整的权限管理 - 多种验证码格式识别 - 自动填充到输入框 - **HTTP POST请求**:自动发送验证码到服务端 - 模块化设计,可被其他脚本调用 - 详细的日志输出 ### 2. `simple_sms_listener.js` - 简化版 适合初学者的简化版本: - 代码简洁易懂 - 基本的验证码提取功能 - 自动复制到剪贴板 - 简单的自动填充 - **HTTP POST请求**:自动发送验证码到服务端 ## 使用方法 ### 准备工作 1. 确保手机已安装 AutoJS6 2. 开启无障碍服务权限 3. 允许 AutoJS 读取短信权限 4. 确保网络连接正常(用于发送POST请求) 5. 确认服务端地址 `http://192.168.1.54:8000/sms` 可访问 ### 运行脚本 1. 在 AutoJS 中打开对应的 `.js` 文件 2. 点击运行按钮 3. 首次运行会请求短信权限,请允许 4. 脚本开始监听短信 ### 停止监听 - **完整版**: 按音量下键停止 - **简化版**: 按返回键停止 ## 验证码识别格式 脚本可以识别以下格式的验证码: - `验证码:1234` - `验证码为1234` - `code: 1234` - `您的验证码是123456` - 纯数字验证码(4-6位) ## 自动填充功能 脚本会尝试将验证码自动填充到以下类型的输入框: - 所有 EditText 控件 - ID 包含 "code"、"verify" 的输入框 - 提示文本为 "请输入验证码" 的输入框 如果无法自动填充,验证码会被复制到剪贴板。 ## 注意事项 1. **权限要求**: - 需要短信读取权限 - 需要无障碍服务权限(用于自动填充) - 需要网络访问权限(用于POST请求) 2. **兼容性**: - 适用于 Android 系统 - 需要 AutoJS6 或兼容版本 3. **隐私安全**: - 脚本只读取短信内容,不会上传或泄露 - 建议在可信环境下使用 4. **使用限制**: - 某些应用可能阻止自动填充 - 部分系统可能限制短信读取 - 网络环境需要能访问指定的服务端地址 ## 自定义修改 ### 修改验证码格式 在 `extractVerificationCode` 函数中添加新的正则表达式: ```javascript const patterns = [ /你的新格式(\d{4,8})/, // 添加新格式 // ... 其他格式 ]; ``` ### 修改检查间隔 ```javascript // 将 2000 改为其他值(毫秒) startSMSListener(callback, 3000); // 3秒检查一次 ``` ### 添加特定发送方过滤 ```javascript if (latestMessage.address.includes("10086")) { // 只处理来自 10086 的短信 } ``` ### 修改服务端地址 ```javascript // 在 sendCodeToServer 函数中修改URL let response = http.postJson("http://你的服务器地址:端口/接口路径", data); ``` ## 服务端接口说明 脚本会向 `http://192.168.1.54:8000/sms` 发送POST请求,数据格式如下: ```json { "code": "123456", "sender": "+8613800138000", "content": "您的验证码是123456,请在5分钟内输入。", "timestamp": "2024-01-01T12:00:00.000Z", "device": "android_device_id" } ``` ### 字段说明 - `code`: 提取到的验证码 - `sender`: 短信发送方号码 - `content`: 完整的短信内容 - `timestamp`: 短信接收时间(ISO格式) - `device`: 设备唯一标识符 ## 常见问题 **Q: 脚本无法读取短信?** A: 检查是否已授予短信读取权限,部分手机需要在设置中手动开启。 **Q: 无法自动填充验证码?** A: 确保已开启无障碍服务,某些应用可能不支持自动填充。 **Q: 验证码识别不准确?** A: 可以根据实际短信格式修改正则表达式。 **Q: 脚本运行后没有反应?** A: 检查控制台日志,确认权限是否正确授予。 **Q: 验证码无法发送到服务端?** A: 检查网络连接和服务端地址是否正确,确认服务端接口正常运行。 **Q: 服务端收不到数据?** A: 确认服务端支持JSON格式的POST请求,检查防火墙和端口设置。 ## 技术支持 如有问题,请检查: 1. AutoJS 版本是否兼容 2. 权限是否正确授予 3. 控制台是否有错误信息 --- **免责声明**: 本脚本仅供学习和个人使用,请遵守相关法律法规,不得用于非法用途。