解锁函数
较第一版,添加了back() -/*如果晚上有人发消息,上滑不能打开输密码界面,需要返回一次后上滑 */
auto.waitFor() //打开无障碍服务后会继续运行脚本
/*判断屏幕锁定,解锁屏幕(数字密码)*/
while (!device.isScreenOn()) {//息屏状态将屏幕唤醒
device.wakeUp();//唤醒设备
sleep(500); // 等待屏幕亮起
/*如果晚上有人发消息,上滑不能打开输密码界面,需要返回一次后上滑 */
back()
sleep(1000);
swipe(700, 1900, 700, 450, 300);//上滑
sleep(400);
/*没有到密码界面时,findOne会阻塞,手动到达密码界面后,脚本会继续运行 */
//解锁 密码123456
desc(5).findOne().click();
desc(0).findOne().click();
desc(5).findOne().click();
desc(4).findOne().click();
desc(4).findOne().click();
desc(3).findOne().click();
//等待解锁完成,返回并退出
sleep(400);
}
打印日期
较第一版,添加当日日期打印
var myDate = new Date();
console.info(myDate.getMonth() + 1 + '月' + myDate.getDate() + '日' + '-开始打卡');
打开微信,确保在主页面
if (currentPackage().search("com.tencent.mm") == -1) {//当前 APP 不是微信
launchApp("微信");
toastLog('正在打开微信');
}
waitForPackage("com.tencent.mm")//等待指定的应用出现。
toastLog('微信已打开');
click(100, 150);
sleep(500);
click(100, 150);
sleep(500);
click(100, 150);
sleep(500);//确保在主页面
toastLog("已在主页面")
后续操作
较第一版,通过
while (!className("android.view.View").textContains("基本信息")) {
sleep(500);
}
确保页面已到达指定页面;
通过
className("android.widget.EditText").depth(9).click()//不能点击,会跳到获取位置的文本框
跳到获取位置的文本框,然后用绝对坐标点击
while (!click("通讯录"));
while (!click("中国海大")); //因为是while(),所以只要没有点击到文字,就会一直循环
while (!click("每日上报"));
while (!click("每日填报"));
//确保已进入页面
while (!className("android.view.View").textContains("基本信息")) {
sleep(500);
}
className("android.widget.EditText").depth(9).click()//不能点击,会跳到获取位置的文本框
sleep(500);
weizhi = className("android.widget.EditText").depth(9).findOnce().bounds()
click(weizhi.centerX(), weizhi.centerY());
toastLog('点击获取位置');
click(735, 1373); //点击确定
toast('已确定');
while (!className("android.widget.EditText").textContains("河南省")) {
sleep(500);
}
sleep(2000);
while (!click("提交信息")); //点击提交信息
sleep(500);
if (text("每天只能填报一次,请确认信息是否全部正确?").findOnce()) {
text("确认").findOnce().click();
console.info("打卡完成")
sleep(500);
back()
sleep(500);
back()
sleep(500);
back()//返回主页面
}
else
console.error("未正确提交")
console.show()//控制台
sleep(500);
完整代码
auto.waitFor() //打开无障碍服务后会继续运行脚本
/*判断屏幕锁定,解锁屏幕(数字密码)*/
while (!device.isScreenOn()) {//息屏状态将屏幕唤醒
device.wakeUp();//唤醒设备
sleep(500); // 等待屏幕亮起
/*如果晚上有人发消息,上滑不能打开输密码界面,需要返回一次后上滑 */
back()
sleep(1000);
swipe(700, 1900, 700, 450, 300);//上滑
sleep(400);
/*没有到密码界面时,findOne会阻塞,手动到达密码界面后,脚本会继续运行 */
//解锁 密码123456
desc(5).findOne().click();
desc(0).findOne().click();
desc(5).findOne().click();
desc(4).findOne().click();
desc(4).findOne().click();
desc(3).findOne().click();
//等待解锁完成,返回并退出
sleep(400);
}
var myDate = new Date();
console.info(myDate.getMonth() + 1 + '月' + myDate.getDate() + '日' + '-开始打卡');
if (currentPackage().search("com.tencent.mm") == -1) {//当前 APP 不是微信
launchApp("微信");
toastLog('正在打开微信');
}
waitForPackage("com.tencent.mm")//等待指定的应用出现。
toastLog('微信已打开');
click(100, 150);
sleep(500);
click(100, 150);
sleep(500);
click(100, 150);
sleep(500);//确保在主页面
toastLog("已在主页面")
while (!click("通讯录"));
while (!click("中国海大")); //因为是while(),所以只要没有点击到文字,就会一直循环
while (!click("每日上报"));
while (!click("每日填报"));
//确保已进入页面
while (!className("android.view.View").textContains("基本信息")) {
sleep(500);
}
className("android.widget.EditText").depth(9).click()//不能点击,会跳到获取位置的文本框
sleep(500);
weizhi = className("android.widget.EditText").depth(9).findOnce().bounds()
click(weizhi.centerX(), weizhi.centerY());
toastLog('点击获取位置');
click(735, 1373); //点击确定
toast('已确定');
while (!className("android.widget.EditText").textContains("河南省")) {
sleep(500);
}
sleep(2000);
while (!click("提交信息")); //点击提交信息
sleep(500);
if (text("每天只能填报一次,请确认信息是否全部正确?").findOnce()) {
text("确认").findOnce().click();
console.info("打卡完成")
sleep(500);
back()
sleep(500);
back()
sleep(500);
back()//返回主页面
}
else
console.error("未正确提交")
console.show()//控制台
sleep(500);