懒人升级!自动判断上下班+导航+放歌 |
您所在的位置:网站首页 › 自动计算快捷指令怎么设置 › 懒人升级!自动判断上下班+导航+放歌 |
懒人升级!自动判断上下班+导航+放歌
2020-12-23 18:02:31
218点赞
1738收藏
127评论
这依旧是个很简单的小教程,初衷只是为了方便生活。So,如果你已经是捷径(快捷指令)大神,勿喷!如有,也感谢大家提改进建议给我。 使用场景之前已经写了一篇文章,介绍了如何设置上下班一键导航+放歌。配合NFC标签,可以做到一碰就开始导航,没有多余的操作了。 但是还是觉得不完美,毕竟上下班还是要单独点选一下;用NFC标签的话还要准备两张,还是不够懒人。 所以我们再优化一下,加入工作日和时间判断,再配合判断蓝牙或者Carplay的连接状态,做到点选都不用、更加懒人的效果。 Q&AQ:为什么你每天上下班还要导航?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 PDTEEE, MMM d, ‘’yyWed, July 10, ‘96h:mm a12:08 PMhh ‘o’’clock’ a, zzzz12 o’clock PM, Pacific Daylight TimeK:mm a, z0:00 PM, PST其中我们关注的小时就是字母HHH代表的是24小时制的小时,hh代表的是12小时制的小时mm代表的是分钟,个位数的时候补零。m则不补零。 这一部分的捷径可以设置为 具体流程就是: 获取当前时间-> 时间格式转为自定格式、HHmm-> 用转换后的数字-1130-> 条件判断、计算结果小于0则为上午,大于0则为下午-> 跳转到对应的快捷指令“上班”or“下班” 1130对应就是11点30分,这个判断时间可以按照你的需求自己设定。 设定如果这个脚本的时候,判断条件可能无法设定为小于,而是只能设定为包含、有任何值等条件。需要将计算的结果从文本改变为数字,就可以设定为大于or小于了。 也就是整个流程的这一部分: 依旧是利用快捷指令的格式化功能。 将周几格式转为纯数字格式再比较数值区间,如将周二转为纯数字的2,然后比较得出2在范围1-5之间,则为工作日;否则即为周末。 查看Unicode Technical Standard #35的格式标准,星期的定义为: Sym.Field PatternsExamplesDescriptionEE..EEETueAbbreviated EEEETuesdayWide EEEEETNarrow EEEEEETuShortee2Numeric: 1 digit ee2Numeric: 2 digits + zero pad eeeTueAbbreviated eeeeTuesdayWide eeeeeTNarrow eeeeeeTuShortcc..cc2Numeric: 1 digit cccTueAbbreviated ccccTuesdayWide cccccTNarrow ccccccTuShort我们需要的就是e,即星期二输出2. 测试一下: 可以看到虽然是星期一,但是输出的数字居然是2。这里应该是根据手机的地区设置,一周的开始是周日,所以周一到周五的数字范围就是2-6。大家要依据自己的实际情况做调整。 这一部分的捷径可以设置为 具体流程就是: 获取当前时间-> 时间格式转为自定格式、e-> 数字大于等于2,是下一步,否则提示今天不上班-> 数字小于等于6,是下一步,否则提示今天不上班-> 跳转到对应的快捷指令“判断上下班”。 依旧要注意设定如果这个脚本的时候,需要将计算的结果从文本改变为数字,才可以设定为大于or小于。 设定自动化场景如图: 具体流程就是: 手机连接到CarPlay-> 播放网易云-> 判断工作日 附加内容其实目前为止的自动化场景也足够满足大多数情况了,但是如果小伙伴们有更高的要求,希望连法定节假日和补班也算上,那就继续看下面的附加内容吧。 为什么判断法定节假日和补班是附加内容呢?因为法定节假日和补班每年都不一样,这就需要每年至少要更新一次放假安排。为了方便—懒—,这个时候我们就要去依托别人的服务。这个时候就会有不稳定的因素产生了,别人提供的服务,或者因为网络因素,或者服务器的承受能力,或者经济原因。很有可能突然就因为各种原因就失效了,然后影响我们的捷径自动化判断。 当然,在了解完上述这些不稳定因素,你仍然认为这是可以接受并且想要更完善的体验,我推荐你几个思路: 直接调用别人的节假日判断的API接口,如http://timor.tech/api/holiday/info/2018-3-2 。这个方法优点是简单,直接传递日期过去,传回的信息连星期几,是否节假日都有了。缺点是开发者用爱发电,服务容易遭受攻击导致不稳定。 直接下载别人维护好,放在公共平台的假日列表,如gameboyLV的ChineseHoliday项目。优点是服务器相对稳定(文件存放在GitHub并且可以配合CDN保证网络访问质量),缺点是大佬可能哪年就不更新了。不过我看大佬从16年开始一直有更新到21年,还是很稳定的。实在不行我们可以fork过来自己更新嘛。 订阅公共日历,也就是别人维护的法定假期的公共日历。如这个地址内提供的订阅日历,大家也可以自己找。优点依旧是服务器相对稳定(日历依托在iCloud),缺点依然是可能哪年就不更新了。 加入节假日和补班日的判断后的大致的思路or流程如图: 我这里演示方法二。 我先fork了的gameboyLV项目,然后release发布了一个1.0版方便蹭免费的CDN加速。 然后公众假日的链接为 补假的链接为 ```https://cdn.jsdelivr.net/gh/Road-tech/[email protected]/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 至此教程结束,现在上车就可以直接出发了,是不是更方便了? ![]() |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |