讓你的 Mac 和 iOS 設備互為「遙控器」,可能只要一個 Workflow 就夠了

軟件 iOS Mac Scheme 少數派 2017-04-01

你可能已經用過 AirDrop 向其他蘋果設備發送鏈接,這條鏈接會在接收的設備上即刻打開。

不過,大多數人可能並沒有意識到,可發送的鏈接不僅可以是一個 http://網址,也可以是一條 URL Scheme。而這條 URL Scheme 在被接收後,同樣會即刻運行。

這也意味著,你可以用一臺蘋果設備去控制另一臺了。例如,當你用 Mac 向 iPhone 發送Workflow://後,iPhone 上的 Workflow 就會自動打開。

用 AirDrop 在 iOS 和 Mac 之間互傳 URL Scheme

在 Mac 上要想用傳網頁那樣,用 AirDrop 傳 URL Scheme 仍有些費勁。你得先在瀏覽器裡打開這個 URL,然後在系統的 Share Sheet 裡找到 Airdrop 才進入發送頁面。

這裡也有簡化的辦法,那就是使用啟動器應用 LaunchBar。1

Alfred 上雖然有支持 Airdrop 的 Workflow,但目前還不能傳網址,只能傳文件。不過,我認為這一點在未來或許能被解決。

用 LaunchBar 讓 Workflow App 動起來

先說說 LaunchBar 在 URL Scheme 輸入上的作用。作為啟動器, LB 可以讓你直接鍵入文本。如果你希望它更快識別你輸入的是 URL 而不是其他什麼東西,可以在啟動它後,接著按快捷鍵CMD+L,再做輸入。

不過,更高效的辦法是把常用的 URL Schemes 存儲為 Safari 書籤(如下圖所示),以後只要輸入書籤名就能找到它們了。

讓你的 Mac 和 iOS 設備互為「遙控器」,可能只要一個 Workflow 就夠了

此外, LB 還支持「搜索模版」功能。例如想在 Bing 搜某個詞條,只要輸入關鍵詞,LB 就會把它替換到 https://bing.com/search?q=**的部分。同理,我們可以把 Bing 的 URL 換成 Workflow 的,加到 LB 的 Index 裡,就像這樣Workflow://run-workflow?name=*。當你輸入 Workflow 的名字後,LB 就會幫你補全 Workflow 的 URL Scheme 了。2

具體設置方法請參考:https://sspai.com/post/27842

讓你的 Mac 和 iOS 設備互為「遙控器」,可能只要一個 Workflow 就夠了

更重要的是,LaunchBar 自帶 「Send via AirDrop」動作。你可在完成輸入後按「Tab」鍵,再鍵入 「Send」 就能看到它了3

LB 支持自動補全,和常用動作排序優先,所以通常我們都不需要輸入完整的文本。

我不瞭解 Airdrop 發送頁面是否有快捷鍵可以操作,所以暫時只能用鼠標點選接收對象。

目前的 Workflow 1.7.3 版出現了無法識別部分 Workflow 名稱的問題,所以並不是每一條 Workflow 都能通過 URL Scheme 運行。

在 Workflow App 上向 LaunchBar 發送指令

用 Mac 啟動 iOS 上的 Workflow 已不成問題,反過來同樣也行。

在 LB 的官方文檔中,就給出了用x-launchbar:large-type?string=LaunchBar+4.3命令行,啟動 LB 讓文字放大顯示的例子。讓我們分解來看:

  • x-launchbar: 就是 LaunchBar 的 URL Scheme
  • large-type是 LB 內放大文字顯示用的命令
  • string= 後面跟的則是要放大的變量參數。

將這條命令通過 AirDrop 從 Workflow App 發到 Mac 試試看。果然立刻見效。

讓你的 Mac 和 iOS 設備互為「遙控器」,可能只要一個 Workflow 就夠了

也就是說你,只要你掌握了 LaunchBar 的命令,基本上,就能在 iPhone 上用 Workflow 接管你的 Mac 了。另外,你也可以用 Launch Center Pro 啟動 AirDrop 向 Mac 發送指令。其 URL Scheme 為 launch://sharesheet?url=*

然而,這中間還有一個障礙。萬一 Mac 是處在鎖屏狀態時,LaunchBar 可就沒法正常運行了。所以我們需要先給 Mac 解鎖,如果你安裝了 Mac ID App,問題迎刃而解——它可以讓你在 iPhone 上通過 Touch ID 直接解鎖。當然,前提是你仍在藍牙的有效範圍內。

用 AirDrop 在 iOS 設備之間互傳 URL Scheme

用發送 URL Scheme 的辦法控制另一臺 iOS 設備,理論上是可行的。但所有發送AirDrop 信息的障礙都一樣——接收方的屏幕必須是點亮的。而 iOS 之間卻很難找到 Mac ID 這種便捷的方案。

所以,當 iPad 就在手邊時,要找出一個再拿 iPhone 去折騰前者的理由並不容易。

讓 AirDrop 在你解鎖手機時,自動運行 Workflow App

前面說到了,作為 AirDrop 的接收方,屏幕處在點亮狀態是一個必要條件。可能你也注意到了,這裡說的是點亮,而非解鎖。不過,僅是亮屏的 iPhone 並不能直接運行 URL,而要等到解鎖後才行。

「當屏幕解鎖時運行 URL Scheme」,乍一看這是一個相當苛刻的限制,但它也為 Workflow 創造了一個獨特的使用情景。比如,當你希望在專注時,不碰手機,或許就能用上它。

這裡就拿我的那條番茄鍾 Workflow舉例來說好了。根據我原先在這條 Workflow 中的設定,進入番茄時間後,如果沒到結束時間卻再次運行,「If」動作就會判斷我可能放棄了正在進行的計劃,進而讓我選擇放棄原因,並刪除當前的番茄鍾。

讓你的 Mac 和 iOS 設備互為「遙控器」,可能只要一個 Workflow 就夠了

和他人互傳 URL Scheme

前面所說的多是在自己的設備之間傳 URL,當如果接收的對象是別人,鏈接是不會自動打開的,而是要對方先確認接收才行。倘若對方點了「拒絕」,這次發送可就失敗了。

除此之外,如果在接收方的設備上沒有安裝 URL Scheme 相應的 App(及Workflow 腳本),結果依然是失敗。

嚴格的限制,讓 AirDrop 的使用更為安全,至少我們不用擔心附近有人隨意操縱你的軟件,盜走你的資料了。

但問題是,這時用 AirDrop 傳 URL Scheme 給別人,可能還不如讓對方直接操作手機更有效率。

AirDrop+Workflow 帶給你別樣的多人互動遊戲

如上文分析,AirDrop+Workflow 為多人協作提高效率看起來不大容易。但 Workflow 也不僅僅是效率工具而已。先前 @三塊五毛就在 Workflow 上做了一個猜數字的小遊戲,雖然那也只是最簡陋的自娛自樂罷了。

結合 AirDrop 與 URL Scheme,在 Workflow 進行多人互動遊戲也具備了充分的條件:

  • 遊戲的數據可以通過 URL Scheme 中的 input 參數在玩家之間互傳,也可以在 iCloud 中存儲和調用。
  • Workflow 自身具備選擇菜單,通知欄提醒等交互動作,且可以通過 API 生成諸如卡牌和血槽等圖形。
  • 玩家的身份可用 「Device ID」 來區分和識別。

當然,僅靠這些作出什麼大作是不可能的,但 DIY 一個對界面要求簡單的博弈類遊戲還是可行的。我嘗試對一些桌遊簡單「移植」,雖然體驗未必吸引人,但至少可以自己發揮想象定製遊戲規則。

為避免被人噴為炫技,遊戲部分我就不再詳解。如果你對此感興趣,歡迎另做討論。

相關推薦

推薦中...