新玩具:Workflow.app

最近发现了 Workflow.app 这个 iOS 应用,虽然是收费软件但非常值得各位乐意折腾 iPhone 的朋友们入手。我觉得这货就是 iOS 设备上缺失已久的 Automator,或者说批处理解析器。

iPhone 对我来说已经足够好用,但缺失了一些自己动手的乐趣。应用和应用之间的互动也不够丰富,导致一些经常性的操作需要通过很多步骤才能实现。在电脑上很容易解决,自己写个脚本就好了。但在 iPhone 上只能呵呵,毕竟这些需求还没急迫到这个地步。

所以,当 Workflow.app 出现的时候,我立即就购买。这货功能十分强大,而且相对写一个应用来说简单不少。我在十分钟之内就写完了第一个“流程”,解决了一个具体的问题。在应用内的 Gallery 里看到了另一个解决问题的好“流程”,也优化了一个常见动作。最后,我在微博上发现了一个朋友贡献出另一个“流程”,将之前困难到哭的事情变得相对简单呢。

Workflow.app
Workflow.app 就是 iOS 的 Automator

接下来,我会将前述三个例子详细地描述一遍。

扫描条码

我喜欢逛书店,但我更喜欢电子书。这两个爱好有时候会带来一些小问题,比如我会在书店扫描图书的 ISBN 号码,然后回家去亚马逊上搜。如果恰好有 Kindle 版,我就直接下单了。如果没有,我会把它加到一个 Wishlist 里,然后等着亚马逊的朋友将它电子化。

这件事情,我一直在用一款扫描二维码的小应用。以前用 Red Laser,这货被 eBay 收购之后就不停地给我制造麻烦,要求我升级到最新版。旧版先是不支持 iPhone 5 的新屏幕尺寸,后来又不让批量导出,最来又开始弹窗……关键是他们的最新版增加了好多好多无聊的功能,感觉我这个非 eBay 用户就不应该去用。于是放弃,购买了一个叫做 Qrafter Pro.app 的扫描器,算是把问题解决了。

购买 Workflow 之后,我看到它支持扫描二维码和条码,于是想着自己做一个。大家可以在这里下载并安装到:
https://workflow.is/workflows/38d0aa42bb8b4ccf9a08cd92ffbffdb9

原理非常简单,稍微看看就明白。先调用 QR 控件扫描条码,然后存到一个变量里。再拿到当前时间,格式化之后存到另一个变量里。接下来取到当前地址,放在第三个变量里。最后把这三个变量整理成一个文本,存放到 Evernote 里。

以前用 Qrafter Pro.app 扫描之后,虽然可以拿到 ISBN 和时间,但没办法拿到地址。其实我很需要知道是在哪一家书店发现的这本书,我虽然不会在那里买,但我可以消费其他的服务呀。以前需要批量导出一次 CSV 文件才可以通过 Excel 或文本编辑器看到书号,现在直接放在 Evernote 里,处理起来方便了很多。

为了进一步简化流程,我把这个流程导出放在了桌面上。原理就是生成一个 Web 应用,但唤起的不是网页而是一个 Workflow.app 的本地 Scheme。所以,现在去书店看到想买的书,我会先去买一杯咖啡(要支持书店嘛),然后在桌面调起 ISBN 这个流程,Workflow.app 会自动打开并开始运行。我只用把摄像头对准封底的 ISBN 条码就好,剩下的事情会全自动完成呢。

问题解决,完美实现需求。

 

分享当前歌曲

搞定书号扫描这件事情之后,我访问了一下 Workflow 的 Gallery,姑且称为“流程商店”吧。他们有 Feature 一个流程叫做“Tweet Song”。我其实有分享正在听的歌曲这个需求,以前都是截屏之后分享照片,步骤稍微麻烦一些。现在是获取当前播放的音乐名称,然后抓取封面图片,最后唤起 Twitter 的分享。整个流程非常顺利,分享起来不要太方便……

如果你愿意,还可以把这个分享界面隐藏起来,全程不打扰。

即便是从 Gallery 里下载到的流程,也可以根据自己的需求进行修改(或者说“二次开发”)。我就在这里修改了默认文案,并增加了 #NowPlaying 标签,未来我还还准备增加当前音乐的艺术家和专辑信息呢。

问题解决,几乎完美实现需求。

ps 如果一时间不知道怎么下手,可以参考一下 Gallery 里的其他“流程”

WorkFlow Gallery
WorkFlow 的“流程商店”

 

举报垃圾短信

这个流程是我在微博上看到的,它解决了举报 iMessage 垃圾短信步骤繁琐的问题。虽然没有做到完美,但已经能让我开始行动起来了呢。

请先在这里把此流程下载回来:https://workflow.is/workflows/6386a1d060744212979e81f9bf88be73

按照苹果的规矩,现在要举报 iMessage 的垃圾短信需要将发送者的 iCloud ID 和垃圾短信截图准备好,通过 email 发给 imessage.spam@icloud.com 就好。据说核实之后会封禁发送垃圾短信的设备,这样子来提升制造 Spam 的成本(或者提升二手 iPod touch 的销路?)。

这个步骤其实没啥问题,就是操作的成本太高。截图好说,查看短信的详情之后快捷键不算麻烦。但复制发送者的 iCloud ID 这件事情太烦人,得点击好多次才可以,而且可点击的区域都很小。

安装这个流程的好处就是降低复制联系人 iCloud ID 的难度,你只需要通过 Extension 模式将联系人分享给 Workflow.app 即可,无需复制出来。而且举报邮件也不需要自己写,这个“流程”已经内置了一份模版。

现在我收到 iMessage 的垃圾短信之后,会打开它并截屏。然后点击垃圾短信右上角的“详细信息”,随后点击刚刚出现的 ℹ️ Info 符号。接下来点击“共享联系人”并在dibu弹出的控件里选择“Run Workflow”,最后选择“Send Spam iMessage…”这个流程即可把举报邮件写好。如果邮件在你看来没问题的话,点击“发送”按钮就能完成举报。邮件发送之后,Workflow.app 还会贴心地帮你把刚才的截图删掉呢。当然,这条垃圾 iMessage 短信还得自己手工删掉。在 Wi-Fi 环境下举报的时候,还得去照片里把 iCloud 上的截图删掉……

问题解决,快速举报 iMessage 垃圾短信已经可行了。

 

更新:生成 Amazon Referral 链接

为了给自己赚点小钱买 Kindle 书,我参加了 Amazon Affiliate Program 和亚马逊联盟两个返利计划。任何人通过点击返利链接下单购买商品,我都会得到订单金额 1% 到 4% 的现金奖励。积累到一定量之后,Amazon 会发一张礼品卡给我,而亚马逊则会直接打款到我的银行卡。

如果你也有参加这两个计划,就会明白这个返利链接的原理基本上就是给 URL 增加一个 tag 参数。以前我会辛辛苦苦地找出商品的 ASIN,然后拼凑出一个返利链接,整个操作非常麻烦。由于受益的多少取决于链接的点击量,为了提升受益我还得经常这么操作,甚是不爽。

既然前一个举报垃圾短信的“流程”是通过“分享联系人”来唤起 Workflow.app 并完成操作,那我也应该可以通过分享当前链接来唤起它才是。于是就有了这么一个流程:https://workflow.is/workflows/cf65d4dcf27445608d7ac2fbdd8f92de

接下来要发返利链接的时候,先找到 Amazon 的商品页面,然后点击“分享”,最后通过 Extension 唤起 Workflow 就好。操作完成之后,一个可用的返利链接会放在剪贴板里。如果你分析一下我的代码,就会发现这其实是一个简单粗暴的办法(通过获取 URL 的 Path 属性去除各种 Query 字段找出干净的 URL 值)。我何尝不想通过正则找出 ASIN 再拼出一个更优雅的链接呢,但我现在还没明白 Workflow.app 的正则语法。

 

写在最后

Workflow.app 还支持其他应用的扩展,如果你有更繁琐的需求(比如解析 RESTful API JSON 数据这种事情),其实可以通过 Workflow.app 来跟 Pythonista.app 这款 Python 脚本神器结合起来。此外,还有之前推出的 Launcher Center Pro.app 也可以配合工作,实现更高效的工作流程。

生活更美好了(至少对于 Geek 和 Nerd 来说)。

7 Replies to “新玩具:Workflow.app”

  1. 你好,请问要如何才能从您给的流程地址比如https://workflow.is/workflows/6386a1d060744212979e81f9bf88be73,把这个流程直接应用到我的手机上呢?

    我直接通过safari访问这个地址,发现点击页面上的一些区域都是打开app,没办法直接应用到我的app里面来

    谢谢

  2. @Fors
    点击页面上部的“Get Workflow”按钮就好,这个时候会打开 App,然后开始下载,最后会自动出现在 Workflow.app 里。

    但如果你有重名的 Workflow 存在,它会直接覆盖且不提示。

  3. 举报 iMessage 的动作失效了么?现在到发送邮件那一步会提示”Email may not be set”,没做什么改动呢。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.