钉钉打卡5.1.8脚本(基于auto.js)开发

//双线程执行3次
for (i = 0; i < 3; i++) {
    threads.start(function() { //线程1--主程序
        do_main();
    });
    sleep(4 * 60 * 1000); //线程2--防死循环时间
    threads.shutDownAll();
    log("防死循环时间到,结束全部进程");
}

//主程序
function do_main() {
    var now_time = new Date();
    var now_hours = now_time.getHours()
    auto.waitFor("fast"); //检查无障碍权限启动
    bright_screen();
    sleep(500);
    //unlock_screen();//只支持安卓>=7.0
    sleep(500);
    stop_app();
    sleep(500);
    is_login();
    sleep(500);
    in_kaoqin();
    sleep(500);
    if (now_hours <= 12) { //小于等于12点进入上班打卡
        do_clock_in();
        sleep(500);
    } else {
        do_clock_out()
        sleep(500);
    }
    device.cancelKeepingAwake();
    log("主程序执行完毕,取消设备常亮");
}

//子程序:
//1.亮屏//    bright_screen()
//2.解锁//unlock_screen()
//3.结束钉钉//stop_app()
//4.是否登录//is_login()
//5.进入考勤页面//in_kaoqin()
//6.上班打卡//do_clock_in()
//7.下班打卡//do_clock_out()


//1.亮屏
function bright_screen() {
    log("进入亮屏子程序")
    device.wakeUpIfNeeded(); //唤醒设备
    device.keepScreenOn(); //保持亮屏
    log("已唤醒");
    if (!device.isScreenOn()) {
        log("未唤醒");
        device.wakeUpIfNeeded();
        bright_screen();
    }
}

//2.解锁--安卓7.0及以上才能支持手势及坐标操作
function unlock_screen() {
    log("进入解锁子程序");
    swipe(X1, Y1, X2, Y2, 1000); //上划调出手势界面
    sleep(1000);
    gesture(1000, [X1, Y1], [X2, Y2], [X2 ,Y3]); //手势解锁
    sleep(1000);
    home();
    sleep(500);
}

//3.结束钉钉进程,确保启动钉钉后进入主页面
function stop_app() {
    log("进入结束钉钉进程子程序");
    app.openAppSetting("com.alibaba.android.rimet"); //进入钉钉设置
    text(app.getAppName("com.alibaba.android.rimet")).waitFor();
    let is_sure = textMatches(/(强制.*|.*停止|强行.*)/).clickable(true).findOne();
    if (is_sure.enabled()) {
        sleep(1000);
        textMatches(/(强制.*|.*停止|.*确定.*)/).clickable(true).findOne().click();
        sleep(1000);
        textMatches(/(强制.*|.*停止|.*确定.*)/).clickable(true).findOne().click();
        log(app.getAppNa

你可能感兴趣的:(小程序)