georgehuan1994 / DingDing-Automatic-Clock-in

钉钉全自动打卡脚本,基于auto.js,免root,适用于蓝牙考勤机
809 stars 210 forks source link

关于 几处我做了些修改 #19

Closed sampsons1983 closed 2 years ago

sampsons1983 commented 3 years ago

function signIn() {// 4.进入钉钉 var lgAc = false var Lg = true app.launchPackage(BUNDLE_ID_DD) console.log("启动" + app.getAppName(BUNDLE_ID_DD) + "...") //sleep(2*1000) // 等待钉钉启动 while(currentPackage()!=BUNDLE_ID_DD){ sleep(1000) console.log("未启动APP重试") app.launchPackage(BUNDLE_ID_DD) } while(Lg){ console.log(currentActivity()) switch (currentActivity()) { case "android.widget.FrameLayout": if (id("home_bottom_tab_text_highlight").exists())
{ console.log("已进入") lgAc=true Lg=false } else { console.log("启动APP等待中") lgAc=false } break; case "com.alibaba.android.user.login.SignUpWithPwdActivity": console.info("账号未登录") var account = id("et_phone_input").findOne() account.setText(ACCOUNT) console.log("输入账号") var password = id("et_pwd_login").findOne() password.setText(PASSWORD) console.log("输入密码") var btn_login = id("btn_next").findOne() btn_login.click() console.log("正在登陆...") //com.alibaba.android.dingtalkbase.widgets.dialog.DDProgressDialog break; } console.log(currentActivity()) sleep(1000) if (lgAc==true) break } } 1、因为 进入 因机器 不同有的启动慢,有的启动快,所以 这里加的个循环控制 2、是进入 考勤 有些定位 快,有些定位慢,所以 也加了个循环 function InKaoQin(){// 6.进入考勤页 var url_scheme = "dingtalk://dingtalkclient/page/link?url=https://attend.dingtalk.com/attend/index.html" if(CORP_ID != "") { url_scheme = url_scheme + "?corpId=" + CORP_ID } var a = app.intent({ action: "VIEW", data: url_scheme, //flags: [Intent.FLAG_ACTIVITY_NEW_TASK] }); app.startActivity(a); console.log("正在进入考勤界面...") while (null == textStartsWith("已进入考勤").findOne(1000)){ console.info("GPS") sleep(1000) } console.info("GPS--OK") if (null != textMatches("申请").clickable(true).findOne(3000)) { console.info("已进入考勤界面") }else{ console.log("未找到考勤界面...")
} }

georgehuan1994 commented 3 years ago

挺好的,在子线程里使用循环,建议加个跳出条件。 如果能保证钉钉启动前是未运行的状态,那么switch块的判断是OK的,否则可能不满足的任一条件,因为只有一级界面的活动名称是 "android.widget.FrameLayout"。