Quantumult X脚本功能使用涵盖重写与定时任务两大场景,通过JavaScript可实现自动签到、去广告及数据抓取,本文详解配置流程、脚本调试技巧及常见问题排查,助你构建高效的iOS网络自动化工作流。
脚本功能的核心价值
Quantumult X脚本功能使用区别于传统代理工具的核心优势,在于其基于JavaScript的 runtime 环境,通过重写(Rewrite)与任务脚本(Task),用户可在HTTP请求/响应阶段插入自定义逻辑,实现从简单的去广告到复杂的API自动化调用,满足学术资源访问与数据同步的自动化需求。
基础配置流程
重写脚本配置
在配置文件的[rewrite_local]或[rewrite_remote]段落添加规则:
[rewrite_local] ^https?://api\.example\.com/v1/user$ script-response-body https://raw.githubusercontent.com/user/script.js
关键参数说明:
script-response-body:修改响应体,常用于解锁会员标识script-request-body:修改请求参数,用于注入设备信息script-echo-response:直接返回本地构造的响应,阻断远端连接
定时任务配置
在[task_local]段落定义Cron表达式:
[task_local] 0 9 * * * https://raw.githubusercontent.com/user/check-in.js, tag=每日签到, enabled=true
注意:Quantumult X脚本功能使用中的定时任务依赖后台刷新,需保持应用在后台运行而非强制关闭。
实战应用场景
自动签到脚本开发
以下模板展示如何构造带Cookie持久化的签到请求:
const $ = new Env('自动签到');
const url = 'https://app.example.com/api/checkin';
const headers = {
'Cookie': $prefs.valueForKey('app_cookie'),
'User-Agent': 'Mozilla/5.0'
};
$.post({url, headers}, (err, resp, data) => {
const result = JSON.parse(data);
$.msg('签到结果', result.message);
$.done();
});
响应体重写技巧
针对国际网络加速场景,修改地理位置验证接口的返回值:
let body = $response.body;
let obj = JSON.parse(body);
obj.data.region = 'US';
obj.data.vip = true;
$done({body: JSON.stringify(obj)});
调试与异常处理
Quantumult X脚本功能使用过程中的日志查看路径:设置 > 调试 > 日志记录,常见报错Script Error: SyntaxError通常由以下原因导致:
- 远程脚本URL返回404或重定向至HTML页面
- JavaScript语法未兼容iOS JSCore环境(避免使用ES6+新特性)
- 内存溢出:循环请求未设置终止条件
建议本地调试时使用$notify()推送关键变量值,生产环境移除调试代码。
节点配置与脚本协同
脚本功能需配合稳定的网络环境执行,对于涉及跨境办公需求的定时任务,建议选择低延迟专线节点以避免请求超时,若需批量管理订阅,可参考支持Clash YAML格式的转换工具生成Quantumult X兼容配置,确保脚本执行时的DNS解析稳定性。
FAQ
现象:脚本提示$request is undefined
原因:在非重写环境下调用了请求对象,定时任务脚本应使用$task.fetch()
解决:区分脚本类型,重写脚本使用$request/$response,任务脚本使用标准HTTP客户端方法
现象:定时任务不自动执行 原因:iOS后台限制或Quantumult X通知权限未开启 解决:设置 > 通知 > 允许通知,并在iOS设置中关闭该应用的"低数据模式"
通过合理配置Quantumult X脚本功能使用,可将iOS设备转化为自动化网络终端,建议从简单的重写规则入手,逐步构建复杂的任务流水线。
