回答
飞书定位打卡的完整步骤如下:
准备工作
1. 确保权限已开启
| 权限 | 开启方法 |
|---|---|
| 无障碍服务 | 设置 → 无障碍 → Hamibot → 开启 |
| 读取位置信息 | 首次运行脚本时弹窗授权 |
| 后台弹出界面 | 设置 → 应用 → Hamibot → 允许 |
2. 确保 GPS 开启
手机顶部下拉通知栏,开启定位/GPS。
脚本代码
// 文档地址 https://docs.hamibot.com/
auto();
auto.waitFor();
// 获取定位函数
function getLocation() {
try {
var locationManager = context.getSystemService(android.content.Context.LOCATION_SERVICE);
var criteria = new android.location.Criteria();
criteria.setAccuracy(android.location.Criteria.ACCURACY_FINE);
var provider = locationManager.getBestProvider(criteria, true);
if (!provider) {
return null;
}
var location = locationManager.getLastKnownLocation(provider);
if (location) {
return {
latitude: location.getLatitude(),
longitude: location.getLongitude()
};
}
} catch (e) {
log("获取位置失败: " + e);
}
return null;
}
function main() {
toastLog("=== 飞书定位打卡开始 ===");
// 1. 获取当前位置
toastLog("正在获取定位...");
var location = getLocation();
if (location) {
toastLog("定位成功: " + location.latitude.toFixed(4) + ", " + location.longitude.toFixed(4));
} else {
toastLog("定位失败,请检查GPS是否开启");
}
// 2. 打开飞书
toastLog("正在打开飞书...");
if (!launchApp("飞书")) {
launch("com.ss.android.lark");
}
sleep(5000); // 等待飞书加载
// 3. 点击"工作台"
var workTab = text("工作台").findOne(3000);
if (workTab) {
workTab.click();
toastLog("进入工作台");
sleep(2000);
}
// 4. 找到并点击"考勤打卡"
toastLog("寻找考勤打卡...");
var attendance = text("考勤打卡").findOne(5000) ||
textContains("打卡").findOne(5000);
if (attendance) {
attendance.click();
toastLog("进入考勤打卡");
sleep(3000);
} else {
toastLog("未找到考勤打卡入口");
exit();
}
// 5. 处理可能弹出的窗口
var closeBtn = text("关闭").findOne(1000) ||
text("下次再说").findOne(1000);
if (closeBtn) {
closeBtn.click();
sleep(500);
}
// 6. 点击打卡按钮
toastLog("执行打卡...");
var punchBtn = textContains("上班打卡").findOne(3000) ||
textContains("下班打卡").findOne(3000) ||
textContains("打卡").clickable(true).findOne(3000);
if (punchBtn) {
punchBtn.click();
toastLog("打卡按钮已点击");
sleep(2000);
// 7. 确认打卡成功
var success = textContains("打卡成功").findOne(3000) ||
textContains("已打卡").findOne(3000);
if (success) {
toastLog("✅ 打卡成功!");
} else {
toastLog("请确认打卡结果");
}
} else {
toastLog("未找到打卡按钮,可能已打卡或不在打卡时间");
}
toastLog("=== 打卡流程结束 ===");
}
main();
使用步骤
| 步骤 | 操作 |
|---|---|
| 1 | 确保手机 GPS 已开启 |
| 2 | 确保飞书已登录账号 |
| 3 | 在 Hamibot 客户端运行脚本 |
| 4 | 首次运行会请求位置权限,选择「始终允许」 |
| 5 | 脚本自动获取定位并打开飞书完成打卡 |
注意事项
| 问题 | 解决方法 |
|---|---|
| 定位失败 | 检查 GPS 是否开启 |
| 打卡失败 | 飞书版本更新可能导致界面变化,需用布局分析调整 |
| 人脸/拍照打卡 | 脚本无法自动完成,需人工配合 |
| 不在打卡范围 | 确保手机在公司定位范围内 |
定时自动打卡
如需每天自动打卡:
- 在 Hamibot 控制台创建定时任务
- 设置触发时间(如每天 08:55)
- 选择设备和脚本
- 系统自动执行
如果飞书界面有变化,可以用布局分析工具查看按钮位置,修改脚本中的选择器。
ℹ️ 内容由 AI 生成,可能不准确,请注意核实