在 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 上允许辅助功能权限,允许即可
大功告成!