资讯专栏INFORMATION COLUMN

iOS 12 workflow 配合 AppleScript 实现 Mac 自动初始化

Half / 1534人阅读

摘要:在发布以后,最好玩的功能莫属集成到系统的捷径,也就是之前的了,配合可以完成一连串的操作,在这里主要演示下在手机上通过语音控制完成办公环境的初始化。

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

大功告成!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/17146.html

相关文章

  • 进程间通信 (OSX/iOS)

    摘要:由于不是根据每个节点上最优原则进行设计,苹果的进程间通信解决方案更显得混乱扎堆。剪贴板是与最常见的进程间通信机制。负责进程间通讯的同时还负责该服务生命周期的管理。 原文链接:http://nshipster.com/inter-process-communication/ 总起 OS X是MacOS与NeXTSTEP的结合。OC是Smalltalk类面向对象编程与C的结合。iClo...

    Baoyuan 评论0 收藏0
  • 还我一个干净的Mac OS(如何彻底删除不需要的App)

    摘要:我也想借这个意思表示即使通过努力清理,也不一定能还原到最初的状态,但至少不会这么糟糕。卸载百度云的对比可以清楚地看到,没有找到百度云的目录,此外,只找到了登录项,没有找到启动项和启动文件。 当初我买MacBook Air的时候特地选择了高配版本,硬盘空间是128G(2011年的古董机器),在最开始的1-2年内使用还不错,后来发现越来越力不从心,为了尽可能腾出空间,几乎把所有的照片、视频...

    scola666 评论0 收藏0
  • fir.im Weekly - 从零开始创建 Android 新项目

    摘要:链接在此新浪微博客户端架构与优化之路来自移动开发前线的分享。沙龙名额有限,想参加的同学快来报名吧网页链接安卓上款最佳黑客工具由黑客与极客微博分享。 今年的 Google I/O 大会上,人工智能和虚拟现实的产品发布让我们对未来多了几分惊喜。对于开发者部分,Google 发布了 Android N 系统,感受最深的是全新的 Android Studio 、 Firebase,赋予开发者更...

    zqhxuyuan 评论0 收藏0
  • fir.im Weekly - 从零开始创建 Android 新项目

    摘要:链接在此新浪微博客户端架构与优化之路来自移动开发前线的分享。沙龙名额有限,想参加的同学快来报名吧网页链接安卓上款最佳黑客工具由黑客与极客微博分享。 今年的 Google I/O 大会上,人工智能和虚拟现实的产品发布让我们对未来多了几分惊喜。对于开发者部分,Google 发布了 Android N 系统,感受最深的是全新的 Android Studio 、 Firebase,赋予开发者更...

    hoohack 评论0 收藏0
  • fir.im Weekly - 2016 年 Android 最佳实践列表

    摘要:检查是否支持从年月号开始,苹果强制要求上架的应用支持。详细教程点击这里程序员技术活动买苹果设备需要注意哪些坑看一名标准的果粉,结合实际使用体验,来告诉大家如何正确地选购苹果设备。 2016 年已经过去一半,你在年初制定的成长计划都实现了吗? 学海无涯,技术成长不是一簇而就的事情。本期 fir.im Weekly 推荐 王下邀月熊_Chevalier的 我的编程之路——知识管理与知识体...

    ideaa 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<