在 iOS 12 釋出以後,最好玩的功能莫屬整合到系統的捷徑,也就是之前的 workflow 了,配合 workflow 可以完成一連串的操作,在這裡主要演示下在手機上通過 Siri 語音控制 Mac 完成辦公環境的初始化。
注意
- Mac 的 ip 應該固定,如果不固定的話,無法實現語音控制,但後邊的指令碼可以在 Mac 本機手動執行
- 執行過程中,需要部分輔助功能的許可權,剛開始幾次的執行可能會失敗。
2018.11.08 更新
最近又研究了下,發現可以更進一步,配合語音完成 Mac 的解鎖並自動登入微信,解鎖 Mac 需要在 App Store 購買 Unlox(當然如果你有 Apple Watch 的話當我沒說)
AppleScript:
-
開啟 Mac 自帶的指令碼編輯器,輸入一下程式碼:
-- active app on active(appName, isfull) if application appName is not running then tell application appName activate end tell if isfull is equal to 1 then fullScreen() end if if appName is equal to "iTerm" then initIterm() end if if appName is equal to "WeChat" then weChatLogin() end if end if end active -- init iTerm on initIterm() tell application "iTerm" tell current window create tab with default profile tell current tab tell application "System Events" keystroke "ssh user@ip" keystroke return delay 2 keystroke "password" keystroke return end tell end tell end tell end tell end initIterm -- full screen on fullScreen() delay 1 tell application "System Events" keystroke "f" using {control down, command down} end tell end fullScreen -- init samba connect on initSamba() tell application "Finder" open location "smb://user:password@ip" end tell end initSamba -- WeChat Login on weChatLogin() tell application "System Events" to tell process "WeChat" set frontmost to true click at {640, 440} end tell end WeChatLogin -- main initSamba() active("iTerm", 0) active("Mail", 0) active("DingTalk", 0) active("Visual Studio Code", 1) active("Google Chrome", 1) active("WeChat", 0)
說明:
- initSamba handler 掛載開發機的程式碼目錄
- active handler 有兩個引數,第一個引數是要開啟的 app,第二個引數是是否要全屏
- 對於 iTerm 有特殊操作,需要自動新建 tab 並登陸到開發機
- fullScreen handler 有 1s 的延遲,是因為在開啟某些 app 的時候,app 本身還在啟動中,是不會響應全屏操作的
- initIterm handler 有 2s 的延遲,是因為需要時間來連線遠端伺服器,這個時間可以根據實際情況調整
- 可以去掉不需要的 app 和功能,新增自己的操作
- Mac 平臺的微信不是原生實現,而且也沒找到對應的 script 字典,所以登入的時候得模擬點選登入按鈕,weChatLogin handler 中的 {640, 440} 是微信在我的 Mac 上的登入按鈕的座標,在不同的螢幕上可能不太一樣
- 儲存以上程式碼到
/Users/username/Desktop/init.scpt
,此時可以直接執行這個指令碼來驗證程式是否 OK,執行過程中可能回需要允許一些輔助功能的許可權
手機:
- 手機上購買安裝 unlox ,在完成該 App 和 Mac 的配對後,進入 Settings -> Create URL schemes -> 選擇自己的 Mac -> 選擇 Unlock -> 選擇 Copy URL schemes to clipboard,此時解鎖的 scheme 會複製到剪下板
- 開啟捷徑 App,選擇新增新的捷徑,在搜尋框中輸入
url
, 選擇第一個,把操作一複製的schemes
新增到url
下的輸入框 - 再次搜尋
url
, 選擇開啟url
- 在搜尋框中輸入
ssh
,選擇搜尋出來的選項 - 在對應的輸入框中輸入 Mac 的 ip,埠,使用者名稱,密碼
-
在密碼下邊的輸入框中輸入
osascript /Users/username/Desktop/init.scpt
- 點選搜尋框選擇應用 -> 開啟應用 -> 點選右側的選擇按鈕選擇微信,這一步是為了讓手機自動跳轉到微信,我們只需要在手機上允許微信登入即可
- 新增捷徑到 Siri 的語音控制中
- 用語音執行測試,期間可能彈出錯誤,要求 Mac 上允許輔助功能許可權,允許即可
大功告成!