TriggerJSBox 1.10.0 为我们带来了全新的脚本运行方式 — Trigger。今天,我们一起来了解如何发挥 Trigger 的功用吧。

介绍

在 JSBox 1.10.0 发布后,JSBox 继 Main App、Widget 、Action Extension 三种运行方式,迎来了其全新的运行方式 — Trigger。Trigger 的呈现方式本质上是 Rich Notification,它可以通过 3D Touch 或长按(非 3D Touch 设备)来预览一条通知,其内容不单单只有标题和正文,还可以显示设定脚本的绝大部份 UI。而在触发方面,常用 iOS 效率工具的用户可能不陌生,其触发方式可以定制特定的时间、日期或位置,来触发一条既定的通知,简单地可以参考原生应用「提醒事项」来进一步了解三种触发方式;除此之外,JSBox 还提供了场景触发器幽灵触发器两种触发方式,而这两种方式可以说是 JSBox 特有的,前者可以通过判断 JSBox 应用打开方式触发并运行一个脚本,后者可以推送一条清除便立即自动重复推送的「不可清除通知」。这样独特的运行方式,给 JSBox 带来了全新的体验,甚至在某些情境下,Rich Notification 的运行方式把 Widget 抛之甚远。关于这种全新运行方式的适用情景和案例,后文将继续讨论。

分析

如介绍所述,Trigger 运行方式的应用情景可以通过两部分来分析,其一为呈现方式,一为触发方式。

就其呈现方式而言,Rich Notification 和 Widget 相比,具有以下优势:

  • 入口相对较浅。相比于 Widget,尤其在 iOS 11 下,预览一条通知仅需两步,下拉通知栏和 3D Touch / 长按预览,即便在锁屏状态下,也仅需亮屏、上推显示历史通知、3D Touch / 长按预览。而 Widget 因为入口更深,通常需要下拉通知栏、左滑显示 Widget、点击运行脚本,在锁屏状态下操作也比较类似。所以操作一条通知要远比操作 Widget 轻易,并且在大多数情况下,下拉显示通知后我们甚至不需要思考应该点击哪个脚本,反应时间大大缩减。
  • 可视内容基本一致。与 Widget 类似,设置运行脚本的 Rich Notification (貌似)可以显示全部 UI,包括唤起键盘的 input 控件。而像$ui.alert$ui.action等方法,在 Rich Notification 是不能显示的。简言之,此运行方式同时保证了输入源UI,使其可以替代 Widget 处理大部分操作。

    之所以提到 input 控件为 Rich Notification 提供了输入源,是因为在此运行方式下,所有显示的控件都无法交互,所以输入源是该运行方式交互的唯一保证,使其不仅仅用于简单预览,而扩展到更多的适用情景。

  • 简单预览,点击进入 App 运行。较之于 Widget,此运行方式适合用于预览或快速重复操作,点击通知区域即可进入 Main App 处理更复杂的操作和交互,逻辑分明。

就其触发方式而言,Trigger 可定制的五种触发方式可以应付很多应用情景。相较于以往传统的主动触发方式,根据时间、日期、位置、场景等触发条件推送通知以提示运行脚本的方式,给 JSBox 增加了一个新的纬度,一个以往我们梦寐以求的被动触发方式。

  • 时间触发器日期触发器:适用于特定时间运行特定脚本的情景。如此前 Workflow 考虑的一种情景,每天在固定时间提醒流量签到。以往我们不得不将其拆分成两个部分,一部分交由「提醒事项」、「Launcher」等应用处理定时提醒操作,一部分通过提醒和 Workflow URL Scheme 关联,从而打开 Workflow App 运行设定的流程。而在 JSBox,这一切都雨过天晴,我们不再需要通过关联提醒来进入 Main App 运行脚本,仅需在收到提醒通知的时候简单一按(重按/长按)预览通知,即可快捷地完成脚本的运行。
  • 位置触发器:适用于位置变化时运行特定脚本的情景。一种情景是工作学习位置变化的时候,提醒查阅某些内容,如离开家 50 米后速览今日新闻、离开工作区域后预览交通情况等。基于位置变化运行脚本的情景同样可以借由提醒类应用解决,而同样的,JSBox 让这些操作更加简单。
  • 场景触发器:效率「强迫症患者」尤为适用。使用场景触发器运行脚本甚至把「选择」这一步也省略了,适用于极简流派效率用户。当然这样的运行方式具有两面性,一般用户使用不见得有效率上的提升,甚至可能本末倒置。不过,JSBox 提供的是一种可能性,假如希望 Widget 从始至终只显示一个脚本的内容,那么这种运行方式就十分奏效了。
  • 幽灵触发器:配合「固定通知」效果更佳。幽灵触发器唯一的区别便是它理论上「无法清除」,适用于一些短时间内需要频繁操作同一脚本的情景,比如用于处理简易的待办事项等,使通知「阴魂不散」。然而其有一弊端,即我们需要反复在设置中增删应用此运行方式的脚本,使之出现或不出现在通知页中。因此在绝大多数情况下,本人更建议大家在需要的时候使用 $push 接口推送通知,预览后不「清除」通知,而是点击通知以外区域使预览收回,从而重复利用一条通知,实现同样的效果。

新的 Trigger 运行方式给我们带来了很多可能性,以应对更多的复杂情景。在某种意义上来说,现在的 JSBox 真正称得上「效率工具」了。

案例

以上内容都是单纯在理论的角度分析 Trigger 的优势,下面通过三个案例具体感受 Trigger 如何应用在这些情景中。以下案例因情况较为特殊,部分不能提供脚本,请见谅。

  • 学习外语时通过推送通知进行简易查词。
    通常情况下,我们单纯使用手机进行查词需要频繁切换应用,或者有人更喜欢使用 Widget 查词,但在 iOS 11 中,我们不得不反复滑动来切换 Widget 页面,效率反而更低下。在不考虑 幽灵触发器 的条件下,我们通过此脚本(文末附件提供)的设计,来简化查词的过程。

    1. 我们在需要反复查词的时候在 Widget 中运行此脚本,将收到一条通知;Translator 推送
    2. 切换到通知页,3D Touch 或长按该通知,预览并运行脚本;Translator 通知
    3. 剪切板的内容将自动填入到输入框,点击键盘回车确认查词;Translator 查词
    4. 保证输入焦点不丢失的情况下,可以反复输入词句进行查询;
    5. 一轮查词操作以后,我们可以点击通知以外的区域收回预览,留作下轮查词使用。由于键盘遮挡了屏幕大部分可视区域,因此设计了清空输入内容并回车可收回键盘的特性。Tanslator 键盘收回但必须注意的是,一旦输入丢失了焦点,通知交互能力也就随之失去,所以若因操作失误导致输入失去焦点,便需要收回预览再重新激活预览
  • 每天 21:00 回顾流量使用情况。
    由于本人使用的是联通日租卡,流量费用的产生是日结算的,即当日 800 MB /元用多少算多少。故设置一个时间触发器,在每天 21:00 推送通知提醒,便于回顾当日流量使用情况,根据实际情况考虑是否把流量用完。时间触发器同样的,收到通知后预览,脚本运行的查询结果便可打印在 UI 上,简单回顾的过程既便捷又不失优雅。China Unicom由于本案例脚本完全搬自 Fiopha HJ(Telegram)分享的脚本并修改,因此这里不提供案例展示的脚本,请自行使用原作者分享的脚本。
  • 靠近实验室提示登陆校园网络。
    在校园里,实验室 Wi-Fi 每天都需要登陆个人校园账号。故设置一个位置触发器,到达实验室 50 米范围内提醒登陆账号。BIT Network此前使用 Widget 手动运行脚本登陆的操作,在一定程度上也十分高效,而现在只是提供了另一种选择。同样的,由于脚本的特殊性,一般人没有使用需求,因此也不提供此脚本。

以上案例分别从代码$push 接口时间触发器位置触发器三种不同的方式展示 Trigger 的适用情景。原则上 Trigger 还有各种千奇百怪的实用情景和案例来解决各式各样的日常生活问题,其中一部分可参考本文章提出的理论分析部分,更多的需要根据实际使用习惯进一步挖掘。如果你有迫切的需求可以通过这种 JSBox 全新运行方式满足,那么一起来学习简单的 JSBox(JavaScript)语法吧,它不会给你带来太多学习上的障碍,更重要的是,一解心头之恨岂不是使用效率工具最为大快人心的事情了吗?

说明

  • 通过 Rich Notification 运行脚本将丢失所有触控交互,使用的时候一定要避免误触通知区域而进入 Main App 运行脚本的情况。同时,一些需要各种点击交互才能正常使用的脚本,一般情况下需要适当地改造运行逻辑。谨记:Rich Notification 的输入源是两种输入类控件,即 input 和 text 控件。若要实现交互,只能想方设法把交互转化为文本或命令输入。
  • 键盘输入焦点一旦丢失,Rich Notification 也将失去交互能力,因此在使用的时候应考虑实际情况保持输入焦点不丢失,切忌因键盘碍眼盲目将之收回。
  • 附件分享的脚本为第一个案例展示的简易查词脚本,此脚本改造自xTeko - 体验同名脚本,因此使用前需注册并申请有道翻译 API。操作步骤脚本内已作详细说明,亦可回顾此前文章了解更多关于此脚本的内容。

附件

JSBox:Translator

V1.5 [2018-03-24 15:30]

  • Support running in keyboard.

V1.4 [2018-03-15 16:00]

  • Trigger edition.

如有问题,欢迎留言或邮件咨询