# Section1 捷徑的前世今生
如果有人問最好用的手機操作系統是什么,大多人的回答肯定是iOS,即使你不是一個果粉也不得不為iOS系統流暢性和UI的美感所折服。并且得益于蘋果公司對App Store上架App質量的嚴格審查,iOS上大多數的App質量都要高于其他平臺。
但是如果你問我iOS最好用的App是哪個?這個問題以前確實很難回答,畢竟一千個人心中有一千個哈姆雷特。直到2015年DeskConnect公司推出了一款叫Workflow的App,在推出當年就被Apple評為年度“App Store最佳應用”,iPhone平臺最具創新應用,并收獲了各大媒體的一致好評。

在這之后如果你問我這個問題,我會毫不猶豫推薦這款,可以說“沒用過Workflow就別說你會用iOS”。
在2017年3月,Workflow被蘋果公司收購。Workflow的開發團隊也加入了蘋果公司,從此有了蘋果官方支持的Workflow如虎添翼,得到了更多的權限和支持,功能也更加強大。
直到2018年9年,隨著iOS12的推出,蘋果公司對Workflow進行了深度改造,并將對其提供了系統級接口,并將其改名為:捷徑(Shortcuts)。
# Section2 什么是捷徑
如果你以前接觸過Workflow,可能看了以上的介紹還是一臉迷茫,下面我們說一下捷徑到底是什么,在iOS12中捷徑可以分為2個部分:
第一部分是Siri捷徑,這個功能相當于Siri的自定義指令,我們可以將一些可以通過Siri調用的功能定義為一個Siri指令,在設置里Siri會給出建議直接點“+”既可以添加成一條捷徑,比如下圖中的查看**查看相簿“所有照片”**。

但是這個功能只提供了簡單的命令,并不能完成復雜的工作,當然它也可以幫助我們用語音來調用我們在第二部分要談到的捷徑腳本。
第二部分就是本書中要重點介紹的捷徑腳本,也就是以前Workflow的主要功能。
簡單地說它是一個類似于批處理的腳本語言,你可以把他看作iOS上的PowerShell或VBScript,但是它的流程可視化的,所以你會發現它的學習成本遠遠低于你所知的任何一種程序語言。我們可以借助這種腳本使用一次點擊或一條Siri語音指令,完成一系列復雜的操作,如果你日常經常需要做一些重復性的操作,你會發現使用這種腳本能使你一勞永逸,將你從繁雜的工作中解放出來。
# Section3 捷徑能做什么
通過捷徑腳本我們可以將一系列復雜的流程化,例如,獲取前往“日歷”上下一個日程的路線、將文本從一個應用移到另一個應用、生成支出報告等類似的操作。這種腳本可以在iOS的-1屏小部件,應用主頁,應用擴展,或Siri語音等任何你需要的地方運行。


捷徑App之所以如此簡單高效,得益于其內置了大量的操作(Action)庫,大多數時候我們只需要2~3個步驟就可以完成一個小型App所做的工作。經過多年的發展,現在捷徑中已經內置了數百個操作,并且很多App也可以為捷徑提供操作。

比如:我們要將幾張照片合成為一張動圖,你不得不去AppStore下載一個至少幾十M的App,而在捷徑里我們只需要簡單的添加3個操作。

并且這種編輯好的腳本可以重復使用,是不是非常方便。
# Section4 捷徑不能做什么
雖然蘋果公司賦予了捷徑很多的功能,但是也有自身能力的邊界:
1.首先大家都知道iOS之所以擁有較高的安全性很大程度得益于其APP運行中的沙盒機制,捷徑雖然擁有較高的權限,但其也會受到沙盒的限制,比如捷徑如果想和其他App或網站交換數據必須通過App自身提供的Api或URL Scheme(關于Api和URL Scheme的使用方法在本書的其他章節會有詳細介紹),想要通過內存讀取是不可能實現的。
2.捷徑可以讀取設備的部分信息或修改設備的設置,但僅限于捷徑提供了操作的部分,比如開關GPS定位之類的在操作庫中沒有的操作則無法實現。
3.捷徑不具備觸發運行功能,除非借助其他App(如IFTTT),否則自身無法實現定時啟動之類的操作。
4.捷徑不是按鍵精靈,其所有操作必須通過操作庫調取App內部功能完成,不能進行模擬點擊這樣的操作。
5.無法調用需要OAuth驗證的API,這類API需要跳轉到一個登錄頁面上手動輸入用戶名和密碼的進行授權,但捷徑無法接收返回的數據,所以無法進行調用。