
我在做一个类似 one sec 的功能,核心逻辑是:
监听某个 App 被打开( Shortcuts Automation: When App is opened ) 触发一个中间流程( Intervention ,例如 5 秒呼吸 + 用户选择) 用户选择: Continue → 进入原 App Exit → 返回 Home Screen
当前遇到的问题
当用户选择 Continue 时,我需要让用户进入目标 App ,但:
一旦通过 Shortcut 或代码再次触发 “Open App” 行为,就会再次触发 Automation ,从而进入无限循环( endless loop )
流程如下:
打开 App → 触发 Automation → Intervention → Continue → Open App (手动触发) → 再次触发 Automation → 无限循环
我想实现的效果是:
在 App 打开的过程中插入一个中间流程,但 不打断原本的系统 open flow ,而是在用户点击 Continue 后,直接“继续”原来的打开过程,而不是重新打开 App
关键疑问 在 iOS Shortcuts / Automation 机制下: 是否存在一种方式可以“恢复”原始的 App 打开流程,而不是重新触发 open ?
当前尝试过的方法(无效) 手动 Open App → 一定 loop 加 flag / 延迟 → 只能缓解,不能从根本解决 判断前后台状态 → 不稳定 本质约束(我目前的理解) Automation trigger 是系统级事件( App open ) 只要再次触发 open ,就一定 re-trigger
如果有做过类似拦截 / 数字健康 / Shortcuts 自动化的朋友,或者理解 one sec 这类实现的,希望能指点一下
1 gigishy 4 小时 49 分钟前 via iPhone 思路有很多,随便说一个简单思路:(题外话,自动化里运行外面写好的快捷指令们,不建议在自动化里写稍微复杂点的指令) 你自动化运行的快捷指令,初始化读取某文本文件作为你需要的标志( flag )内容,比如用一个数字作为运行次数的计数器,第一次如果判断不存在这个文本文件你可以创建。 然后根据运行次数分支运行你的需求,包括你在分支里重新打开你说的 app这次打开,已经根据标志分流执行其它分支的指令了。 最后要结束快捷指令运行之前,就那个文件或者文件里的计数器(标志)做处理,也就是收尾工作。 |