你拿到了朋友的苹果平板,正想开始乱玩,结果每打开一个软件,立即返回主屏幕,并弹出弹窗。这,是可以通过快捷指令实现的,而且它的安全性至少用来防普通人完全足够。
首先,进入设置,新建一个专注模式,名字随便定(比如“安全模式”)。它将作为你的“安全模式”的开关。
随后,打开快捷指令。选择“自动化”,新建自动化->个人自动化,条件选择“App”,然后在app选择界面,把你要保护的所有app全都选上,随后触发条件选择“已打开”

剩下来的代码比较简单,可以直接抄

你以为到这里就结束了吗?当然不是!现在的“安全模式”本质上是一个勿扰模式啊,谁都可以关掉它,安全性还是太低了。所以我们还需要通过快捷指令在你关闭“安全模式”时进行验证
巧了,快捷指令的“自动化”功能又允许我们监听某个勿扰模式被关闭的事件

这样就简单了,当安全模式关闭时,用“请求输入”要求用户输入自己设定的密码,如果密码对,那么不做任何事,否则则重新开启安全模式
嗯……设计不错,但问题是,“请求输入”运行时,用户可以直接点击周围的空白区域,来直接结束这个快捷指令啊。安全性还是很低
那么能不能换个思路:当“安全模式”关闭时,打开“安全模式”,随后当用户密码输入正确时再关掉,否则保持不动,相当于把原来的逻辑反了一下
嗯……不错,安全多了。但问题又来了,“关闭'安全模式'”这个操作,又会导致自动化被运行,重新打开“安全模式”啊。
现在的问题其实就相当于:程序如何验证自己是被谁调用的
这简单。自动化里允许程序获取是哪个app调用了自己。然而真的尝试的话,会发现由于调用的直接原因是“安全模式”被关闭,所以调用者都是快捷指令app,无法进行判断
这时候,必须得用点邪修了
我们从app store下载“捷径拓展”app,然后临时创建一个快捷指令,用捷径拓展的“随机文本”功能,生成一个随机的32(或者其他位也行)位文本。(或者你能通过其他方式获取随机文本也行)

然后,在监听“安全模式”被关闭的快捷指令最开头,加几行代码

然后,我们在用户密码输入正确的逻辑里,在“关闭'安全模式'”前面加几行代码

(我这里不是传统的密码验证,而是用了捷径拓展的其他功能,稍后会讲)
上下两张图的文本都是你生成的那个随机文本
谁跟你说剪贴板只能用来复制粘贴了,剪贴板甚至能让快捷指令之间互相传输消息(我理解的,开关“安全模式”是极低频操作,一个月最多也就一两次,剪贴板没就没了吧)
这里剪贴板的作用就是告诉程序,你是怎么被调用的。从而巧妙地避免了递归的出现。python中,我们一般用全局变量,或者直接函数调用时传参解决。
接下来,程序的基本功能已经搞定了,我们要让它稍微方便一点。捷径拓展里提供了功能,获取移动设备当前的屏幕朝向,如上图,可以获取屏幕朝向后,判断是否为某一特定朝向,若是,则解锁,若不是,则不解锁,此处逻辑与密码相近,要改动的代码只有“请求输入”部分,不再赘述




夜雨聆风