iOS 12 workflow 配合 AppleScript 實現 Mac 自動初始化

在 iOS 12 發佈之後,最好玩的功能莫屬集成到系統的捷徑,也就是以前的 workflow 了,配合 workflow 能夠完成一連串的操做,在這裏主要演示下在手機上經過 Siri 語音控制 Mac 完成辦公環境的初始化。shell

注意

  • Mac 的 ip 應該固定,若是不固定的話,沒法實現語音控制,但後邊的腳本能夠在 Mac 本機手動執行
  • 執行過程當中,須要部分輔助功能的權限,剛開始幾回的執行可能會失敗。

2018.11.08 更新

最近又研究了下,發現能夠更進一步,配合語音完成 Mac 的解鎖並自動登陸微信,解鎖 Mac 須要在 App Store 購買 Unlox(固然若是你有 Apple Watch 的話當我沒說)服務器

AppleScript:

  1. 打開 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)

    說明:app

    • initSamba handler 掛載開發機的代碼目錄
    • active handler 有兩個參數,第一個參數是要打開的 app,第二個參數是是否要全屏
    • 對於 iTerm 有特殊操做,須要自動新建 tab 並登錄到開發機
    • fullScreen handler 有 1s 的延遲,是由於在打開某些 app 的時候,app 自己還在啓動中,是不會響應全屏操做的
    • initIterm handler 有 2s 的延遲,是由於須要時間來鏈接遠程服務器,這個時間能夠根據實際狀況調整
    • 能夠去掉不須要的 app 和功能,添加本身的操做
    • Mac 平臺的微信不是原生實現,並且也沒找到對應的 script 字典,因此登陸的時候得模擬點擊登陸按鈕,weChatLogin handler 中的 {640, 440} 是微信在個人 Mac 上的登陸按鈕的座標,在不一樣的屏幕上可能不太同樣
  2. 保存以上代碼到 /Users/username/Desktop/init.scpt,此時能夠直接運行這個腳原本驗證程序是否 OK,運行過程當中可能回須要容許一些輔助功能的權限

手機:

  1. 手機上購買安裝 unlox ,在完成該 App 和 Mac 的配對後,進入 Settings -> Create URL schemes -> 選擇本身的 Mac -> 選擇 Unlock -> 選擇 Copy URL schemes to clipboard,此時解鎖的 scheme 會複製到剪切板
  2. 打開捷徑 App,選擇添加新的捷徑,在搜索框中輸入 url, 選擇第一個,把操做一複製的 schemes 添加到 url 下的輸入框
  3. 再次搜索 url, 選擇 打開url
  4. 在搜索框中輸入 ssh,選擇搜索出來的選項
  5. 在對應的輸入框中輸入 Mac 的 ip,端口,用戶名,密碼
  6. 在密碼下邊的輸入框中輸入ssh

    osascript /Users/username/Desktop/init.scpt
  7. 點擊搜索框選擇應用 -> 打開應用 -> 點擊右側的選擇按鈕選擇微信,這一步是爲了讓手機自動跳轉到微信,咱們只須要在手機上容許微信登陸便可
  8. 添加捷徑到 Siri 的語音控制中
  9. 用語音運行測試,期間可能彈出錯誤,要求 Mac 上容許輔助功能權限,容許便可

大功告成!編輯器

相關文章
相關標籤/搜索