我们先用一个实例来演示如何利用JavaScript来创建一个配置

配置实例

我打算创建一个这样的配置:根据当天是否是一个节气日来改变桌面壁纸,称之为节气壁纸配置,简称“节气壁纸”。
但是我不懂得如何判断当天是否是一个节气日怎么办呢?答案是“搜索”。

搜索代码

通过搜索关键词“js 节气”得到如图所示的结果

js 节气 搜索结果

第一个搜索结果是获取公历农历节气的,因为不需要获取这么多的内容,放弃;打开第二个搜索结果,只有一个function,看着可以拿来使用,经测试的确可用。

修改代码

根据作者的注释,第一部分内容是判断当天是哪一个节气,第二部分是当天处于哪个节气日之后,所以把第二部分的内容删除,用第一部分代码。
修改结果如图所示:

修改后的JS代码

这个方法用到三个参数,年月日,那么如何用变量来表示呢,这个也是可以搜索到的,首先搜索关键词“js 日期”,

JS日期搜索结果

点开第一条搜索结果

找到“JavaScript Date 对象参考手册”

,点击去就看到年月日的表示方法了,添加后的代码就像这样,

最后的代码

在Tasker添加操作

  1. 在Tasker的任务中添加代码操作JavaScriptlet将上面的代码复制粘贴进去就可以了
  2. 然后添加一个设置壁纸的操作(请自备24节气图片资源并以节气命名,并不需要与图中一致)
    节气壁纸路径

最后保存下配置就实现了这个功能。

为了避免路径出错,建议先选择一个壁纸,然后把路径中的节气改成变量。
遇到逻辑方法的时候用JS,遇到Android功能实现的时候用Tasker自带功能。

添加触发条件

最后为这个任务添加一个"屏幕被解锁的触发条件"关联起来就完成。
这样在不懂算法的情况下,也可以创建自己想要的配置了。

在Tasker中使用JavaScript解决逻辑问题

处理字符串

逻辑处理最经常遇到这样的提问,一个字符串 abcABC123F 怎么提取数字,这个时候直接搜索关键词 "js 提取数字" 就可以了

处理数据内容

用JavaScript处理HTML,XML,JSON等格式的数据也容易许多,比如解析一个简单的天气数据:像这样的{"today":"雨","tomorrow":"晴"}的JSON数据只需要使用JSON.today就解析完成了,非常简单。
虽然像文首的例子可以网络获取到数据,但是解析数据还是用JavaScript方便,比Tasker内置的变量分离,搜索替换等功能方便很多。

Tasker使用JavaScript的好处

  1. 入门低js语言足够成熟,学习资料丰富
  2. 运行速度快经实际测验,在Tasker中使用JavaScript处理复杂数据时,速度比Tasker内置功能快
  3. 可复用使用js代码时,直接复制粘贴原有代码就可以了,不必像Tasker内建功能那样,调用任务时还要设置参数
  4. 代码可以通过网络找到js代码搜索一下可以很方便找到,不仅仅可以在几个tasker群里面问了,完全可以到js群里问
  5. 兼容性好Tasker版本更替较快,导出的配置常常在不同版本间不兼容,使用js则可以大大减少不兼容现象的出现

建议

对于Tasker新人来说,并不强调所有的功能都使用JS来实现:遇到逻辑方法的时候用JS,遇到Android功能实现的时候用Tasker自带功能。
如果你对tasker功能,运行日志,权限等都很熟悉,应该就成为tasker大神级别了吧!
当然,人人都能成为的大神不是真正的大神。

展望

我并不是建议大家为了使用Tasker而从头学习JavaScript,只是推荐大家学会使用网上已有的代码,当然如果你因此而喜欢上js代码更好;写此篇文章的目的是:希望在未来5年,可以让更多的人上手Tasker,有更多的配置流行出来,让Tasker真正的为大多数人获得便利。