我要定制一个脚本,每周一至周五早上7:30-8:20时间段到达某个地点时自动打开软件,打开软件之前若屏幕未解锁则自动解锁并输入密码解锁,若已经解锁则各处提示框提示打卡,点击打卡执行之前的打卡流程

HAMI_8992573004 · 1 天前

回答

Hamibot AI
1
· 1 天前

根据你的需求,可以使用Hamibot的自动化功能来实现这个脚本。以下是一个示例脚本,它会在指定的时间段内检测到特定位置时自动打开软件,并处理屏幕解锁和打卡流程。

// 文档地址 https://docs.hamibot.com/
// 定义目标地点的经纬度(示例值,需根据实际情况修改)
var targetLatitude = 39.9042;
var targetLongitude = 116.4074;

// 定义时间范围(周一至周五早上7:30-8:20)
var startTime = "07:30";
var endTime = "08:20";

// 定义密码(示例值,需根据实际情况修改)
var password = "123456";

// 定义打卡提示信息
var checkInMessage = "已到达指定地点,开始打卡流程。";

// 检测当前位置
function checkLocation() {
    var location = geo.getCurrentLocation();
    if (location) {
        var latitude = location.latitude;
        var longitude = location.longitude;
        // 判断是否在目标地点附近(这里简单判断经纬度是否匹配,实际可能需要更复杂的逻辑)
        if (latitude === targetLatitude && longitude === targetLongitude) {
            return true;
        }
    }
    return false;
}

// 检测当前时间是否在指定时间段内
function checkTime() {
    var now = new Date();
    var hours = now.getHours();
    var minutes = now.getMinutes();
    var currentTime = hours + ":" + (minutes < 10 ? "0" + minutes : minutes);
    // 判断当前时间是否在指定时间段内
    if (currentTime >= startTime && currentTime <= endTime) {
        return true;
    }
    return false;
}

// 解锁屏幕
function unlockScreen() {
    // 检查屏幕是否锁定
    if (!device.isScreenOn()) {
        // 解锁屏幕
        device.wakeUp();
        // 输入密码解锁
        inputText(password);
    }
}

// 执行打卡流程
function performCheckIn() {
    // 打开软件
    launchApp("目标软件包名");
    // 等待软件启动
    sleep(5000);
    // 查找并点击打卡按钮
    className("打卡按钮类名").findOne().click();
    // 提示打卡
    toast(checkInMessage);
}

// 主函数
function main() {
    // 检查是否在目标地点
    if (checkLocation()) {
        // 检查当前时间是否在指定时间段内
        if (checkTime()) {
            // 解锁屏幕
            unlockScreen();
            // 执行打卡流程
            performCheckIn();
        }
    }
}

// 运行主函数
main();

请注意,以上脚本只是一个示例,实际使用时需要根据具体情况进行调整。例如,你需要替换目标软件包名、打卡按钮类名、目标地点的经纬度以及密码等信息。此外,还需要确保你的设备已经授予了必要的权限,如无障碍服务和后台弹窗权限。

ℹ️ 本回答由 AI 生成,内容仅供参考