tasker中运行javascript脚本可实现复杂逻辑且无需root;需启用javascript engine(v7.1+需单独安装扩展并重启);通过javascriptlet执行代码,用setglobal/setlocal传递结果,支持变量传入与日志调试。

在Tasker中运行JavaScript脚本,能绕过原生动作限制,实现字符串处理、时间计算、条件分支、HTTP请求等复杂逻辑,无需root或额外插件。
确认Tasker已启用JavaScript支持
打开Tasker → 点击左上角菜单图标 → 选择「设置」→ 「UI」→ 找到「JavaScript Engine」选项 → 确保其状态为「启用」。若显示「不可用」,说明当前Tasker版本(v7.1+)未内置引擎,需前往Play商店安装「Tasker JavaScript Engine」独立扩展包并重启Tasker。
【必须重启Tasker,否则新引擎不会被识别】
创建含JavaScriptlet的任务
第一步:长按Tasker主界面空白处 → 选择「新建任务」→ 输入任务名(如“日期格式化”)→ 点击「√」保存。
第二步:点击刚建好的任务 → 点击「+」添加动作 → 选择「代码」→ 「JavaScriptlet」。
第三步:在弹出的编辑框中输入JavaScript代码,例如:
const now = new Date();
const formatted = now.getFullYear() + '-' + (now.getMonth()+1) + '-' + now.getDate();
setGlobal('TODAY', formatted);
这行代码会生成形如“2026-6-14”的日期字符串,并存入全局变量TODAY——后续动作可直接用%TODAY调用。
Java Linux版下载入口,提供 Oracle JDK 26.0.2 官方 Linux 安装包、Java 环境配置、JDBC 数据库连接和 Java 服务端开发相关信息。
向JavaScriptlet传入Tasker变量
方法一:使用%前缀直接读取变量
在JavaScriptlet编辑框中写:
const input = '%MYTEXT'; // 注意单引号包裹,否则会被当作未定义标识符
const upper = input.toUpperCase();
setGlobal('RESULT', upper);
方法二:用args对象安全传参(推荐)
先在Tasker中设置本地变量:任务→「+」→ 「变量」→ 「设置变量」→ 变量名填%my_input,值填“hello world”。
然后在JavaScriptlet中写:
const input = args.my_input || '';
const result = input.replace(/\s+/g, '_');
setGlobal('SLUG', result);
这样避免因变量为空导致脚本崩溃。
从JavaScriptlet获取返回值并用于后续动作
JavaScriptlet本身不自动输出,必须显式调用setGlobal()或setLocal()才能传递结果。
例如:执行完计算后写setGlobal('SUM', 123),下一步动作就能用%SUM;
若只想在当前任务内使用,改用setLocal('TEMP', 'abc'),则%TEMP仅在本次任务生命周期有效。
注意:JavaScriptlet执行完毕后,Tasker会继续执行后续动作——它不阻塞流程,也不抛出JS异常为Tasker错误;出错时仅在「日志」中记录,任务仍会往下走。
调试JavaScriptlet常见问题
打开Tasker → 左上角菜单 → 「日志」→ 点击右上角「…」→ 「JavaScript Log」,这里会显示每条JavaScriptlet的执行时间、输入参数、控制台输出(console.log)和报错堆栈。
如果看到「ReferenceError: console is not defined」,说明你写了console.log但Tasker JS引擎不支持该对象——改用alert()或直接setGlobal()输出中间值来排查。
【严禁在JavaScriptlet中调用setTimeout、fetch或DOM API,Tasker JS引擎无浏览器环境】
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










