從0到1,教你如何使用Tasker+Autojs實現自動打卡功能
你是否有上下班總會忘記打卡或者遲到的困擾,這篇文章將帶你感受一下自動化工具+JS的魅力
首先聲明:本文章不針對任何第三方軟件,文章中的腳本只做學習,不做商用,侵刪
準備工作:
- 安卓手機或模擬器,最好使用模擬器(推薦夜神模擬器安卓7的64位),因為手機條件會比較苛刻(需要root,和谷歌三件套)
- Auto.js軟件,或者其衍生產品AutoX.js
- Tasker,中文站,原網站
- 需要自動執行的軟件,我用的是 *人薪事
首先,咱們熟悉一下Auto.js的調試,官方文檔已經寫的很清楚了,我主要概述一下抓取組件調試的過程
以AutoX.js為例,VScode安裝Auto.js-VSCodeExt-Fixed插件,按住ctrl+shift+p,輸入auto即可進入插件的工具菜單,選擇 ‘開啟服務’,復制右下角服務ip及端口,就可以等待移動端連接了


如果是用手機連接,需要開啟:開發者工具>USB調試,模擬器則直接打開AutoXjs側邊欄的連接電腦,輸入之前復制的服務ip及端口,開啟調試模式


打開懸浮窗,用于應用控件的抓取


以Tasker為例,點擊懸浮窗的 ‘布局分析’ ,選擇布局范圍分析,AutoXjs會將當前頁面中的可操作控件列舉出來,此時通過js代碼進行事件操作即可實現自動化控制




以搜索框為例,我們實現一個 模擬搜索 的訴求

根據官方文檔,我們可以簡單實現該功能
const appName = "Tasker",
getSearchBtn = () => desc("搜索 Tasker"), //搜索按鈕,desc文本查找控件
getSearchInput = () => id("filter_text"), //輸入框
startSearchBtn = () => id("search"), //開始查詢按鈕
str = "打卡";
console.log("launchApp:" + appName, launchApp(appName)); //打開Tasker app
console.log("getSearchBtn", getElem(getSearchBtn()).click()); //點擊搜索按鈕
console.log("getSearchInput", getElem(getSearchInput()).setText(str)); //輸入關鍵字
console.log("startSearchBtn", getElem(startSearchBtn()).click()); //點擊開始搜索按鈕
function getElem(ele) {
return ele.findOne();
}
效果如下:
接著,咱們照葫蘆畫瓢,參照文檔使用模擬動作實現操控其他軟件的功能,比如每次執行腳本時,都會自動在打卡軟件中打卡(源碼放在結尾)

AutoX.js已經幫助我們實現了半自動打卡,距離我們的目標又近了一步
下面我們需要使用Tasker配合AutoX.js達到觸發某(些)條件時打卡即可
打開tasker,新建任務test



在任務編輯中新建系統操作>發送意圖,這里我新建了一個android.intent.action.tasker的廣播,用于和AutoX交互



我們在AutoX中新建一個腳本觸發事件,當有應用觸發android.intent.action.tasker時,執行這個打卡腳本




然后我們在Tasker中運行這個任務用來觸發AutoX執行腳本

至此,使用Tasker連接AutoX這塊已經完成,接下來就是觸發任務的條件了
既然是自動打卡,肯定與時間地點有關系。所以,我們在Tasker的配置文件中新建配置,配置時間,和地點(需要谷歌三件套),并選擇任務,當達到特定時間地點時,Tasker就會觸發打卡腳本


寫在最后:
使用Tasker+Autojs實現打卡固然好用,但是其對手機要求較高,如果你的手機恰好root,并裝了谷歌三件套,使用起來會比較方便。其他同學推薦使用安卓模擬器實現。
如果這篇文章對你有幫助,請幫忙點個贊!感謝

浙公網安備 33010602011771號