新人下载app,立即提现现金 您的好友 送你现金 去提现

懒人升级!自动判断上下班+导航+放歌

我叫马路啊 20-12-23 关注

这依旧是个很简单的小教程,初衷只是为了方便生活。
So,如果你已经是捷径(快捷指令)大神,勿喷!
如有,也感谢大家提改进建议给我。

使用场景

之前已经写了一篇文章,介绍了如何设置上下班一键导航+放歌。配合NFC标签,可以做到一碰就开始导航,没有多余的操作了。

但是还是觉得不完美,毕竟上下班还是要单独点选一下;用NFC标签的话还要准备两张,还是不够懒人。

所以我们再优化一下,加入工作日和时间判断,再配合判断蓝牙或者Carplay的连接状态,做到点选都不用、更加懒人的效果。

Q&A

Q:为什么你每天上下班还要导航?
A:我上下班每日通勤平均时间40min,不同的路径,不同的城市道路+高速组合,拥堵的时候差距可以多达20min。所以目前我很依赖导航。

Q:还是XX手机的XX助手更方便,轻轻松松就设置好了。
A:本文仅适用于iOS手机。

总体思路

大致的思路or流程如图:

懒人升级!自动判断上下班+导航+放歌

iOS的快捷指令里拥有一栏叫自动化,为我们预设了各种触发指令的场景。我会选择用连接CarPlay车载时或者蓝牙的触发场景。当手机自动连上车上的CarPlay或者中控的蓝牙时,去触发设定好的指令。

触发指令后,指令会去播放音乐,然后会去判断今日日期,如果是周末就退出。如果是工作日,就去判断是上班还是回家。

判断上班还是回家的方法有很多种,可以用判断回家的距离或者时常大于或者小于某些值来区分,也可以用判断当前时间是早上还是下午来区分。这里我选择相对简单的用时间判断上下午。

当判断出上班还是回家后,再跳转触发上篇文章教大家设定好的一键导航就好了。

设置捷径指令

因为iOS的快捷指令的设置界面的逻辑其实并不清晰,所以我不打算将一整套流程都设置在一个快捷指令里,而是选用套娃的方式,某一条件判断好了,就跳到下一个对应的快捷指令中。

PS. 就是我们编程时写function的逻辑 - -|

设定一键导航

这里就不重复了,有劳大家去上一篇文章去查看。

上一篇文章的链接:iOS设置下班一键导航+放歌

这里我会创建两个一键导航的快捷指令,分别叫“上班”,“回家”。

判断上班还是回家

也就是整个流程的这一部分:

懒人升级!自动判断上下班+导航+放歌

这里我选择相对简单的用时间判断上下午。

因为快捷指令并没有提供现成的判断上下午的指令,所以换个思路,利用快捷指令的格式化功能。 将时间转为纯数字格式再比较数值大小,如将时间11:30转为纯数字的1130,然后比较数字大小;数字小于1200即为上午,大于1200即为下午。

查看Apple官方的快捷指令使用手册,找到关于自定日期格式的内容,可以看到快捷指令采用了Unicode Technical Standard #35的格式标准。

模式结果
yyyy.MM.dd G ‘at’ HH:mm:ss zzz1996.07.10 AD at 15:08:56 PDT
EEE, MMM d, ‘’yyWed, July 10, ‘96
h:mm a12:08 PM
hh ‘o’’clock’ a, zzzz12 o’clock PM, Pacific Daylight Time
K:mm a, z0:00 PM, PST

其中我们关注的小时就是字母H
HH代表的是24小时制的小时,hh代表的是12小时制的小时
mm代表的是分钟,个位数的时候补零。m则不补零。

这一部分的捷径可以设置为

懒人升级!自动判断上下班+导航+放歌

具体流程就是:

获取当前时间-> 时间格式转为自定格式、HHmm-> 用转换后的数字-1130-> 条件判断、计算结果小于0则为上午,大于0则为下午-> 跳转到对应的快捷指令“上班”or“下班”

1130对应就是11点30分,这个判断时间可以按照你的需求自己设定。

设定如果这个脚本的时候,判断条件可能无法设定为小于,而是只能设定为包含、有任何值等条件。需要将计算的结果从文本改变为数字,就可以设定为大于or小于了。

懒人升级!自动判断上下班+导航+放歌

判断工作日

也就是整个流程的这一部分:

懒人升级!自动判断上下班+导航+放歌

依旧是利用快捷指令的格式化功能。 将周几格式转为纯数字格式再比较数值区间,如将周二转为纯数字的2,然后比较得出2在范围1-5之间,则为工作日;否则即为周末。

查看Unicode Technical Standard #35的格式标准,星期的定义为:

Sym.Field PatternsExamplesDescription
EE..EEETueAbbreviated
 EEEETuesdayWide
 EEEEETNarrow
 EEEEEETuShort
ee2Numeric: 1 digit
 ee2Numeric: 2 digits + zero pad
 eeeTueAbbreviated
 eeeeTuesdayWide
 eeeeeTNarrow
 eeeeeeTuShort
cc..cc2Numeric: 1 digit
 cccTueAbbreviated
 ccccTuesdayWide
 cccccTNarrow
 ccccccTuShort

我们需要的就是e,即星期二输出2.

测试一下:

懒人升级!自动判断上下班+导航+放歌

可以看到虽然是星期一,但是输出的数字居然是2。这里应该是根据手机的地区设置,一周的开始是周日,所以周一到周五的数字范围就是2-6。大家要依据自己的实际情况做调整。

这一部分的捷径可以设置为

懒人升级!自动判断上下班+导航+放歌

具体流程就是:

获取当前时间-> 时间格式转为自定格式、e-> 数字大于等于2,是下一步,否则提示今天不上班-> 数字小于等于6,是下一步,否则提示今天不上班-> 跳转到对应的快捷指令“判断上下班”。

依旧要注意设定如果这个脚本的时候,需要将计算的结果从文本改变为数字,才可以设定为大于or小于。

设定自动化场景

如图:

懒人升级!自动判断上下班+导航+放歌

懒人升级!自动判断上下班+导航+放歌

具体流程就是:

手机连接到CarPlay-> 播放网易云-> 判断工作日

附加内容

其实目前为止的自动化场景也足够满足大多数情况了,但是如果小伙伴们有更高的要求,希望连法定节假日和补班也算上,那就继续看下面的附加内容吧。

为什么判断法定节假日和补班是附加内容呢?因为法定节假日和补班每年都不一样,这就需要每年至少要更新一次放假安排。为了方便—懒—,这个时候我们就要去依托别人的服务。这个时候就会有不稳定的因素产生了,别人提供的服务,或者因为网络因素,或者服务器的承受能力,或者经济原因。很有可能突然就因为各种原因就失效了,然后影响我们的捷径自动化判断。

当然,在了解完上述这些不稳定因素,你仍然认为这是可以接受并且想要更完善的体验,我推荐你几个思路:

  1. 直接调用别人的节假日判断的API接口,如http://timor.tech/api/holiday/info/2018-3-2 。这个方法优点是简单,直接传递日期过去,传回的信息连星期几,是否节假日都有了。缺点是开发者用爱发电,服务容易遭受攻击导致不稳定。

  2. 直接下载别人维护好,放在公共平台的假日列表,如gameboyLV的ChineseHoliday项目。优点是服务器相对稳定(文件存放在GitHub并且可以配合CDN保证网络访问质量),缺点是大佬可能哪年就不更新了。不过我看大佬从16年开始一直有更新到21年,还是很稳定的。实在不行我们可以fork过来自己更新嘛。

  3. 订阅公共日历,也就是别人维护的法定假期的公共日历。如这个地址内提供的订阅日历,大家也可以自己找。优点依旧是服务器相对稳定(日历依托在iCloud),缺点依然是可能哪年就不更新了。

加入节假日和补班日的判断后的大致的思路or流程如图:

懒人升级!自动判断上下班+导航+放歌

我这里演示方法二。

我先fork了的gameboyLV项目,然后release发布了一个1.0版方便蹭免费的CDN加速。

然后公众假日的链接为

补假的链接为

```https://cdn.jsdelivr.net/gh/Road-tech/ChineseHoliday@1.0/data/XXXX_w.txt

链接里XXXX代表当前年份。

举个例子关于节假日判断,也就是这部分:

懒人升级!自动判断上下班+导航+放歌

这一部分的捷径可以设置为

懒人升级!自动判断上下班+导航+放歌

判断打定工作日的具体流程就是:

获取当前日期-> 日期格式转为两个格式化后的日期,MMdd和yyyy-> 设定URLhttps://c...1.0/data/[格式化后的日期yyyy].txt-> 获取URL内容-> 如果URL内容里有[格式化后的日期MMdd],也就是当前日期-> 如果URL内容里含有当前日期就放假,否则上班

判断补假的流程类似,只是要将URL换成https://c...1.0/data/[格式化后的日期yyyy]_w.txt

至此教程结束,现在上车就可以直接出发了,是不是更方便了?

展开阅读全文

打开App,享最佳阅读体验
全部评论 (56)
bolo_m
5
2020-12-23

作为一个老程序员,我都觉得没有半点兴致搞这玩意,费脑细胞。普通消费者如何感受?

DonTen
5
2020-12-23

流程图里的判断时间,不管上午还是下午,都是去公司[装大款]

呆呆湾
2
2020-12-24
bolo_m: 作为一个老程序员,我都觉得没有半点兴致搞这玩意,费脑细胞。普通消费者如何感受? 1

内行人发言了,我也纳闷最近好多这类软件的讲解,难道是要普及?但是捷径的设置在我看来真的有点复杂了,苹果的系统是以简单流畅为初衷,这么一来总觉得有点背道而驰。

樂觀主儀
2
2020-12-23

咱们用的不是一个公司的苹果手机,我的不带这些功能。

无思者无忧
2
2020-12-23
独孤天紫: 为什么我搞了一个断开wifi自动打开蜂窝的自动化,结果推送后点击一下才运行,半自动而不是全自动 1
无梦何必远方2019: 我也发现,涉及网络的好像不可以自动运行,别的自动化最下面有个是否询问这类的选择,网络的没有 2

苹果的逻辑简单不可思议,我设置了自动运行早安捷径代替闹钟,结果常常运行不了,刚开始接触自动运行觉得是神器,设置了钉钉自动打卡,结果到点了显示要我解锁,我都想得起解锁了,我还要自动运行做什么?也许有人要杠是为了安全,那完会可以在自动运行设置完成以后验证一下faceid或者appleid,再严一点每月验证一次也行啊。就是文中作者用的这个自动播放音乐也只能用网易的,你就是想换个音乐软件都不行,因为你要先解锁。

benli3
1
2020-12-24

我还是自己按一下听歌算了

值友4267249696
1
2020-12-24
独孤天紫: 为什么我搞了一个断开wifi自动打开蜂窝的自动化,结果推送后点击一下才运行,半自动而不是全自动 1
无梦何必远方2019: 我也发现,涉及网络的好像不可以自动运行,别的自动化最下面有个是否询问这类的选择,网络的没有 2
展开隐藏评论
无思者无忧: 苹果的逻辑简单不可思议,我设置了自动运行早安捷径代替闹钟,结果常常运行不了,刚开始接触自动运行觉得是神器,设置了钉钉自动打卡,结果到点了显示要我解锁,我都想得起解锁了,我还要自动运行做什么?也许有人要杠是为了安全,那完会可以在自动运行设置完成以后验证一下faceid或者appleid,再严一点每月验证一次也行啊。就是文中作者用的这个自动播放音乐也只能用网易的,你就是想换个音乐软件都不行,因为你要先解锁。 3

我最近使用心得,如果是不能自动运行是把询问关了,如果是需要解锁才能自动运行,是需要把运行显示关了。就可以实现锁屏情况下自动运行了

rxneo
0
01-07 16:45
病猫扮老虎: iOS14下,文本朗读siri女声卡顿丢内容,开启低电量模式,一切正常,也不知道什么时候能修复这个bug 1

是的,朗读文本断断续续的,难用

poptank
0
01-07 05:08

上车以后找siri不行么?

择城1381
0
01-06 23:21
DonTen: 流程图里的判断时间,不管上午还是下午,都是去公司[装大款] 1
我叫马路啊: 是不是很真实[邪恶] 2

这就是中年危机的沉浸式体验[喜极而泣]

打开App,查看更多好文和评论
最新软件技能优惠
开课吧 Python编程0基础3天入门课程
开课吧 Python编程0基础3天入门课程
0.99元
天猫精选 01-18
3 33%
圈外同学 IDP职业发展规划课
圈外同学 IDP职业发展规划课
0.8元
天猫精选 01-15
0 100%
猜你喜欢
查看更多
相关好价
相关商品
查看更多热门商品
社区主页 文章详情
95
804
56
你已经点过赞了
新浪微博 QQ空间 微信好友 豆瓣
当前为触屏版
热门搜索