用 iOS 系统自动化解救钉钉打卡族

文章介绍了在钉钉考勤功能不稳定的情况下,如何利用iOS13的快捷指令自动化功能,尝试了多种自动打卡的方法,包括定时、位置提醒和闹钟触发等,最终推荐使用基于系统闹钟的定时打卡方案,因为它在确保提醒的同时提供了更好的用户体验。
摘要由CSDN通过智能技术生成

在今年特殊环境的催化下,越来越多的公司使用钉钉作为员工考勤工具,可以代替我们统计每月提报的考勤表,算是一件功劳。可惜,钉钉 App 目前稳定性欠佳,只拿「打卡」这个功能说吧,就算你设置了「极速打卡」有时也会遇到失效的情况,更何况「可能」受限于系统限制,无法实现特定时间自动完成考勤打卡的功能。

目标

尽可能全自动地完成钉钉考勤打卡,同时兼顾休息日、加班等特殊情况,做到「省心省力,绝不漏打」。

实现

最初我通过设置 Due 循环提醒的方式做到及时打卡,但操作起来还是相对繁琐,每天都要做的事情,多一步都不想做。iOS 13 在快捷指令 App 更新了「自动化」功能,能用系统自带功能实现,何必使用第三方呢?于是我做了如下尝试:

1 定时自动打卡

**实现原理:**在快捷指令的自动化中设定一个通常我们在工作日到达打卡地点(公司)的时间点,执行钉钉考勤打卡功能。

实现步骤:「快捷指令」→「自动化」→「创建个人自动化」→「日程:当天」→「到达公司的时间点(如 8:45)」→「重复:去除休息日」→「添加操作」→「搜索或点选钉钉的考勤打卡功能」→「下一步」→「完成」

操作视频

实现效果:到点会静默弹出通知,你需要解锁后点击运行才能完成打卡。

**结论:**不推荐。

2 基于位置提醒的自动化打卡

实现原理:利用系统自带的「基于位置的提醒」功能,在快捷指令中建立特定时间段内到达或离开考勤地点时自动打卡。

实现步骤:「快捷指令」→「自动化」→「创建个人自动化」→「行程:到达 / 离开」→「选取考勤位置」→「设定时间范围」→「添加操作」→「搜索或点选钉钉的考勤打卡功能」→「下一步」→「完成」

操作视频

实现效果:理想情况下会在你到达 / 离开考勤地点时自动弹出打卡提醒,缺点很明显,无法全自动,延迟大容易遗漏,耗电。

结论:不推荐。

3 基于系统自带闹钟实现定时打卡

**实现原理:**提前设置好上下班打卡时间点的闹钟,在快捷指令的自动化中设定闹钟「停止」时执行钉钉考勤打卡功能。

实现步骤:

设置闹钟:「时钟 App」→「闹钟」→「分别创建上下班打卡时间的闹钟,重复选项去除休息日」→「储存」

操作视频:

设置自动化:「快捷指令」→「自动化」→「创建个人自动化」→「日程:当闹钟停止时」→「闹钟:现有」→「选择刚才创建的上下班闹钟」→「下一步」→「添加操作」→「搜索或点选钉钉的考勤打卡功能」→「下一步」→「取消运行前询问」→「不询问」→「完成」

操作视频:

实现效果:到设定时间,闹钟会响起,你可以直接点击停止,然后解锁后自动进入钉钉打卡,如果此时还未到达考勤地点可以选择「稍后提醒」,重要的是比起突兀地弹出打卡提醒的方式,这种方式将解锁和停止闹钟有机地结合起来,使操作更加流畅。

遇到加班时,可以推迟,也可以重复打卡:

使用自带闹钟启动打卡的几点优势:

  • 听得到:即使手机处于静音状态,闹铃也能照常响起;
  • 不会漏:闹钟的特点是不关闭就一直提醒,确保不会忘掉;
  • 灵活:闹钟自带「稍后提醒」,虽然是固定的 9 分钟间隔,但也足够方便你临时推迟打卡。

结论:推荐。几乎是目前为止 zui 合适的方式。

4 在特定时间段打开指定 App 时自动打卡

实现原理:在快捷指令的自动化中设定通常我们在临近上下班时间点使用的 App(可多选),在打开此 App 时执行,并通过脚本判断是否在考勤时间段而自动判断是否执行钉钉考勤打卡功能。

实现步骤:「快捷指令」→「自动化」→「创建个人自动化」→「设置:打开 App」→「选取常用的 App」→「添加操作」→「脚本」→「控制流:如果」→「输入:当前日期」→「条件:介于」→「设定起止时间点」→「点按下部的加号」→「关掉脚本,搜索或点选钉钉的考勤打卡功能」→「拖动考勤打卡卡片到 “否则” 上方」→「继续点击加号」→「继续使用上述功能添加下班打卡的脚本」→「下一步」→「完成」

操作视频:由于操作步骤繁多,将操作分割成了两部分。

虽然此处设置的时间点是包含当前日期的,但经过实测其实不受「日期」影响,第二天依然可以自动执行。

**实现效果:**当你打开指定的 App 时,会在屏幕顶部弹出通知横幅并自动判断是否处在考勤时间段,如果是则自动打开钉钉打卡,如果不是,通知横幅则会在显示大约三秒后自动消失,但此方法存在一个问题:任何时间你打开指定的 App 都会短暂出现横幅提醒,稍微有些干扰。

结论:根据自己需要选择,个人认为只需使用第三种闹钟自动化就完全满足需要了。

后记

按照 iOS 13 更新「自动化」功能的字面意思理解,本应很简单就能实现的功能因为种种限制 1,而不能完美实现稍微有些遗憾,但又不是不能用,对吧?

It’s Apple being Apple. ‍♂️

注:题图 by Juan Gomez on Unsplash。

  1. 具体限制可参考此处 https://talk.automators.fm/t/ios-13-automatic-running-of-shortcuts-require-clicking-run-still/4938/29 本文对 Apple 设定限制的合理性不妄加评判,毕竟 iOS 如此庞大复杂的产品中任何一个决策都有其背后的考量。

快捷指令手册链接

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的示例代码,可以在Windows系统下使用Appium实现iOS大麦移动端自动化: ```java import io.appium.java_client.ios.IOSDriver; import io.appium.java_client.remote.MobileCapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.URL; public class DamaicnTest { public static void main(String[] args) throws Exception { // 设置 Appium Server 地址和端口号 URL url = new URL("http://127.0.0.1:4723/wd/hub"); // 设置 Appium 连接参数 DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS"); capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "14.4"); capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 11"); capabilities.setCapability(MobileCapabilityType.UDID, "xxxx"); capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest"); capabilities.setCapability(MobileCapabilityType.APP, "path/to/your/app"); // 创建 iOSDriver 实例 IOSDriver driver = new IOSDriver(url, capabilities); // 进行自动化测试操作 driver.findElementByAccessibilityId("我的大麦").click(); driver.findElementByAccessibilityId("请登录").click(); driver.findElementByAccessibilityId("手机号/邮箱/账号").sendKeys("your_username"); driver.findElementByAccessibilityId("密码").sendKeys("your_password"); driver.findElementByAccessibilityId("登录").click(); // 关闭应用程序 driver.quit(); } } ``` 需要注意的是,在运行测试脚本之前,需要替换代码中的UDID和APP路径参数为实际的值,以及修改登录账号和密码。此外,还需要根据实际情况修改定位元素的方式和元素的属性值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值