更新日志:
1.1:
- 支持同时设置多个闹钟,拯救赖床星人;
- 修复手机无网络情况下请求超时导致闹钟未打开的BUG(之前只会在服务区错误的情况下打开闹钟,现在无网络等异常情况下也会打开闹钟并提醒用户);
相信很多用iPhone当闹钟的小伙伴跟我有同样的烦恼,遇到中秋国庆这种法定节假日的时候一旦忘记手动关闭闹钟,设定的工作日闹钟就会在美好假期的一大早把你叫醒,又或者在调休的周末没响铃耽误上班。
中国法定节假日闹钟这个功能其实并不难实现,苹果一直不做进原生的闹钟。很多第三方的闹钟APP有这个功能,但由于iOS系统的封闭性,使用体验并不友好,总担心不会按时响铃。反观安卓很多国产品牌,闹钟都非常人性化的加入了这个功能。
iOS13测试版刚发布的时候,作为不作死就会死星人,第一时间刷入了iOS13 Beta1,惊喜的发现快捷指令里面多了「自动化」这个Tab,支持了多种自动化操作,这就很好搞事情了😎。
但不知道是不是步子迈得太大,在iOS13 Beta5的版本中,苹果将快捷指令的自动化给移除了,放到了iOS13.1的Beta版本中,并对自动运行的权限做了一定的限制,iOS13.1才能使用「自动化」这个功能。
言归正传,这次我们就在iOS13.1上使用快捷指令的「自动化」完成中国法定节假日闹钟的功能。
如果你想直接使用
第一步
首先请确认你的手机系统是iOS13.1以及以上,否则无法完成设置。
如果弹出「无法打开“中国法定节加入闹钟”」的提示,请去到系统设置中,找到快捷指令,打开「允许不受信任的快捷指令」开关即可,打开后重新点击安装快捷指令。(有人反馈我的快捷指令里没有这个「允许不受信任的快捷指令」选项?其实,只需要在快捷指令的官方共享中心随便添加一个捷径,然后运行一次,就能在设置中找到这个选项了)
请按下图步骤添加快捷指令
第二步
手动运行快捷指令,同意相关权限请求,运行完毕后点击右上角「完成」按钮
第三步
创建自动化触发操作,由于iOS13.1在每天定时触发那里做了限制,所以无法在锁屏模式下运行定时触发。所以这里我选用了通过关闭勿扰模式进行触发,由于实现原理是通过判断当天是否是工作日来决定 打开/关闭 对应的闹钟,所以一定要在当天并且是闹钟响铃之前完成检测。
例如:我的勿扰模式时间段是0:00 - 08:00,我的闹钟时间是08:10,所以每天自动关闭勿扰模式时会触发此快捷指令,判断闹钟是需要打开还是关闭,从而实现自动化的效果。如果你没有设置勿扰模式的习惯,可以在设置每天闹钟响铃之前,打开勿扰模式1分钟再关闭也能实现这个效果,或者你自己探索使用其它方式进行触发。
第四步
手动开启勿扰模式后手动关闭,看自动化是否被触发,触发成功后打开闹钟APP,可以看到有一名为「工作日闹钟XX:XX」的闹钟,设定的是每天运行。不过不用担心,自动化会每天检查一次,工作日才会打开,节假日会关闭,所以一定要确保设置的自动化每天运行哦。
借助同样的方法,我自己还设定了关闭勿扰时自动开床头灯,工作日闹钟关闭后如果我在家HomePod会自动播放音乐,可以让我更快地醒来。相信每个人的需求都不一样,但是都能借助这个自动化和快捷指令,让生活更加智能。
至此,我们的中国法定节假日闹钟功能就实现了,如果你想知道具体的运行逻辑,请继续往下看,如果只是想实现功能那就可以开始愉快的假期啦~
如果你想了解快捷指令的运行逻辑
整个快捷指令用到了一个第三方查询节假日的API:http://timor.tech/api/holiday 感谢作者提供和维护这么方便的API。
中国节假日闹钟的快捷指令逻辑流程图大致如下,有兴趣的可以了解一下,当初写的时候没有流程图,一步步按照自己的想法实现。
苹果从收购Workflow开始慢慢布局快捷指令,iOS13.1已经集成了自动化的选项,快捷指令的功能变得越来越强大,回过头来看看,苹果一直致力于让编程走入大众,快捷指令其实是一个非常友好的编程工具,可以脱离大部分代码语言的束缚,让每个人用编程的逻辑实现自己的想法,这就是苹果的初衷吧。