Makzan

我管理世界職業技能競賽之網站技術項目、舉辦本地設計與開發賽事、開課分享技術心得。一個用網頁來表達自己的作家。

iOS 捷徑自動化|每朝說早晨及讀隨機金句

發布於
嘗試使用右下方的 ▶️ 運行,便可以得出以下結果。而每天上午七時半,我們的捷徑小助手就拿用溫柔的聲線,輕輕說一句早晨,迎接美好的一天,及讀出一句給予我們正能量的金句了。

我的 iOS,每天早上七時半,會讀出「早晨 Thomas,又係美好的一天喇」,然後會讀出金句,再讀出來自澳門天文台 API 的是日澳門天氣資料。

今天,來示範如何自動化 iPhone 於特定時間觸發 Shortcuts 捷徑,並且讀出金句,下回再示範如何取得澳門天文台 XML API 天氣資料。

安裝捷徑 App

蘋果官方的捷徑(Shortcuts)應用程式,沒有內置安裝於 iPhone 或 iPad 上,而是需要到 App Store 下載:https://apps.apple.com/hk/app/shortcuts/id1462947752?l=en

這款捷徑應用程式,可以允許我們視覺化地一個個指令塊的方式,由上向下在電話或平板上編寫自動化流程。

捷徑 App 的前身稱為 Workflow,2017 年時被蘋果收購並改名為 Shortcuts。在其前身時,我已可以在 Workflow 中撰寫一些基本的資料輸入、處理、輸出,而近年在蘋果大力推動下,更高度整合內置的軟硬件資源。例如經預先允許下,可以自動在鎖機時執行、可以通過「喂 Siri + 捷徑名稱」觸發,配合 HomeKit 或特定狀態觸發等。加上其他第三方應用程式可以提供捷徑 App 的擴充,例如配合上 Pyto 執行 Python 代碼,可以互補不足,達至在 iPhone 上編程、按情況執行等操作,由於現代人們電話永遠旁身兼有流量連接網絡,從而達至的移動生活自動化。

特定時間,自動運行

打開捷徑 App 後,下方有三個 Tab,分別是已製作的捷徑、自動化執行、網上瀏覽更多捷徑。今日我們先集中看自動化執行,即中間的 Tab。

選取中間的 Tab 後,再按右上方 + 號,然後揀選藍色的「個人自動化」,這時可以看到不同的觸發機制,例如指定時間、鬧鐘觸發時、上車連接 CarPlay 時、到達或離開某地點時、連接公司網絡時、打開特定 App 時等林林總總的觸發方式。

我們選指定時間,並設定執行時間為早上七時半。

接著,便可以開始添加指令塊(Action)來撰寫我們的捷徑程式了。

設定讀出指定句子

首先,我們試試讀出一句預先寫好的文字。讀字的指令塊是「Speak」,可以直接使用單個Speak,或先使用文字塊(Text)設定好文字,再交給「Speak」指令來讀出來,這樣就可以體會到捷徑程式的精髓:資料傳遞與轉換。

操作:

  1. 在指令列表中,選取或拉出「Text」文字塊
  2. 輸入好想讀出來的文字
  3. 繼續在指令列表中,選取或拉出「Speak」讀音指令塊。
  4. 按一下藍色圓框小箭頭,打開「Speak」的設定,在語言中選取中文。

此時,應可以看到這兩個指令塊之間,有一條實線連接著。這代表他們是有資料傳遞關係的。前面的指令塊,會將結果交給後面的指令塊。這個例子中就是「Text」的內文值,交給了「Speak」來讀出來。

通常這個連接會是自動的,因為指令往往都是有輸入、做處理轉換、再輸出的模式,所以按先後加指令塊時,就會自動串連起他們。但若果捷徑 App 的串連並非你想要的,或在搬動指令塊時不小心斷開了連接等,我們也可以手動選取每一個指令塊的輸入來源,在一些較大型的捷徑指令流程中,便會經常出現需要手動選取輸入變量的情況。

總之,我們先運行一下這段捷徑吧。此時我們的捷徑 App 畫面應和以下的相若,指令塊結構一致,只是文字按您喜好設定。然後我們可以按右下方的 ▶️ 執行按鈕。便可以看到捷徑中的指令塊,從上而下逐格有 Highlight 底色,示意正在運行。先運行文字塊,再運行讀音。

分而治之 Divide & Conquer 

雖然純粹讀一句句子,我們是可以直接使用「Speak」便搞定,但這樣分成兩個指令塊是有好處的。

好處一:使用「Text」文字塊,可以有一個多行輸入框,更方便我們輸入想說的文字。

好處二:將動作分成兩份,思維上是拆開成兩步:先準備材料、再上碟推出。這是分而治之的策略,每步只顧好自己的設定。例如假若現在輸入來源不再是「Text」預先打好的文字,而是一段從網上取得的實時資訊、或是從一個列表中隨機抽出來的金句,我們要更改的,就是將「Text」文字塊替換成可以做到上述效果的指令塊,而這個過程,是不影響輸出需求的,所以我們的「Speak」指令塊不用做任何修改,只要來源有文字來,這個指令塊就會讀出來。

相反,若果現在需求改變了,不是讀出來,而是通過 Notification 推送文字出來,那麼我們便只需要替換掉「Speak」指令塊做其他顯示方式的指令塊便可,來到這步之前的文字是怎樣得來的,這個指令塊不過問不介意,總之有文字傳遞給這個指令塊便可以了。

這就是分拆指令塊的好處,每個指令塊更獨立,而他們之間,通過捷徑的資料由上而下傳遞方式或手動選擇方式連繫著。

自動運行,不用詢問

指令塊構建完成,我們可以返回上一層,即這個自動化和式的觸發設定。這頁下方有一個「Ask Before Running」的選項,即這些指令集,我們想先知會我們,我們手動允許後再執行,還是自動直接執行。

我們想自動每天上午讀文字出來,不用解鎖不用手動干涉,所以可以關掉這個須詢問再執行的選項。此時捷徑 App 會溫馨提示,表示我們是否確定允許自動執行。因為有時如果我們不明白捷徑內指令塊是做甚麼,是會有安全風險的。

製作列表隨機的方法

成功讀出預設定文字後,我們希望再讀出一句金句。這句金句是從一個列表中隨機抽出來讀的。

  1. 這時我們可以添加一個「List」列表塊,從中可以先填上幾句自己有感覺的正念金句,例如我從《原子習慣》一書中找來了幾句我喜歡的句子。
  2. 有列表後,我們再添加一個名為「Get Item From List」的指令塊,這個指令可以從輸入的列表中選取其中一個值出來。若添加時指令塊列表太長,也可以使用搜尋篩選,例如輸入 Get Item 或輸入 Random 皆可。
  3. 添加後,將選取條件改為隨機(Random)。
  4. 最後,再添加一個「Speak」讀音指令塊,便可以將隨機抽出來的文字讀出了。

以下短片示範了添加列表、隨機抽取、讀音指令的操作流程,及示範了清除指令塊的輸入來源,並重新使用「Select Magic Variable」選取想要輸入到這個指令的資料。

短片示範添加列表、隨機抽取、讀音指令的操作流程

https://vimeo.com/667676447

完成後,我們應可以得出以下指令結構,分別是:

  1. 文字塊
  2. 讀音指令
  3. 列表
  4. 從列表隨機選取
  5. 讀音指令

嘗試使用右下方的 ▶️ 運行,便可以得出以下結果。而每天上午七時半,我們的捷徑小助手就拿用溫柔的聲線,輕輕說一句早晨,迎接美好的一天,及讀出一句給予我們正能量的金句了。

最終成品

https://vimeo.com/667674827

不知大家會設定早晨之後說甚麼呢?還有會有哪些金句作為隨機讀取呢?有好金句記得分享喔~

— 麥麥寫的 麥誠 Makzan,2022-01-19。

喜歡我的文章嗎?
別忘了給點支持與讚賞,讓我知道創作的路上有你陪伴。

CC BY-NC-ND 2.0 版權聲明

【閱讀心得】《原子習慣》

教學文系列

1

看不過癮?

一鍵登入,即可加入全球最優質中文創作社區