惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
博客园 - 叶小钗
Hugging Face - Blog
Hugging Face - Blog
博客园 - 司徒正美
Last Week in AI
Last Week in AI
罗磊的独立博客
量子位
Jina AI
Jina AI
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
IT之家
IT之家
美团技术团队
雷峰网
雷峰网
爱范儿
爱范儿
S
SegmentFault 最新的问题
小众软件
小众软件
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
技巧:Workflow的备份、恢复、导出、导入 - 少数派
2016-11-21 · via 少数派

尽管Workflow早先已经内置了同步服务,并在版本1.6中完善了其分享社区Workflow Gallery,以便新手快速上手,但是依然存在以下缺点:

  1. Workflow的同步服务侧重于多设备之间的同步,主要用于保证各设备使用的一致性,而难以用于备份,更不用说恢复自己workflow程序的历史版本了;
  2. 如果向朋友、亲人推荐该app,但他们不擅长使用程序相关的应用,并且在英文面前望而却步,则新版Workflow Gallery的作用实属有限。

尽管针对第一点,少数派已有一解决方法用于备份和恢复:Workflow 教程(六):如何备份恢复你的 Workflow 动作,但是该方法利用的是Workflow的分享服务,每次的备份都要进行多次上传,每次的恢复都要进行多次下载,动作较为繁复,效率实属有限。

那么本文将提供一种极其快速便捷的方式,用于实现备份、恢复、导出、导入功能。

Data URI

在继续下去前,我们需要先简略了解Data URI的相关知识,这是本文所有功能得以实现的核心。本人也是无聊改CSS时突然想起这个东西可以用在Workflow中。

功能

Data URI在1998年的RFC 2397规定中被定义。作为一种特殊的URI,它能够代替常规的URI,将一些小数据直接嵌入文档中。比如在CSS样式中若要引用图片,可以对图片进行编码处理转换成Data URI,再嵌入CSS中,如此CSS相当于内含了一个图片文件,无需下载即可实现图片的本地引用。

格式

Data URL的基本格式如下:

data:[<mediatype>][;base64],<data>

主要分为四部分:

  1. data: :该部分为Data URI的URL Scheme,固定不变;
  2. [<mediatype>]:该部分指明编码的数据类型,如text/plain,text/html,image/jpeg等;
  3. [;base64]:该部分指明数据的编码与否,对于纯文本数据可以仅进行常规的URL Encode,该部分留空;对于图片等数据应进行Base64编码以用字符串表示数据,该部分填上";base64";
  4. <data>:数据部分,数据转化为字符串存储与此处。

应用

废话半天下面步入正题。

在Workflow的Developer页面中,开发者定义Workflow的Import URL为如下格式:

workflow://import-workflow?url=[url]&name=[name]&silent=[true]

打开以上形式链接即可实现Workflow导入。其中有3个query,[url]为Workflow的下载直链,[name]为workflow导入后使用的名称,silent=[true]决定导入完成后是否跳转。

Data URI应用的地方就是[url]这个位置,插入后即可将.wflow文件,即Workflow的程序文件嵌入该链接中,无需从它处下载即可进行导入工作。

由于Data URI中 [<mediatype>] 这一部分用于客户端对数据进行识别并进行相应操作,而.wflow文件显然还没这个资格获得一个规定的专属MIME type,这里按基本格式瞎填即可,想正式点就填application/x-workflow等,图省事就干脆留空,不影响使用。如此我们可以将一个workflow文件的Data URI表示为:

data:;base64,<data>

通过使用Base64 Encode动作对.wflow文件进行编码,再粘贴至<data>部分,即可构成完整的.wflow下载链接,然后再将其插入Workflow Import URL的[url]部分就大功告成了!

实例一:备份workflow

iCloud是个存储备份文件的好地方,它有多设备同步功能,这样无论从哪台苹果机器上你都可以访问到备份文件,并且iCloud会将文件存储在本地,便于快速访问。

0f0575448fe34f6bb6ccb0cae0e2ff28.png

点击下载:Workflows Backup

IMG_3658.png

功能

该workflow抓取你的所有workflow,打包成zip压缩包并存储至Workflow的iCloud文件夹。这样无论你有多少个workflow都可以一次点击全部备份,而只花费1秒钟不到的时间。

如此,比如说你在编辑制作一个大型workflow时,不小心搞砸了,而你先前正好通过此workflow进行了备份,那么就和玩RPG游戏一样可以随时还原重来了。

注意

唯一需要注意的地方是iCloud Folder这块,如果你没有在iCloud中创建Backup文件夹,请改为其它地址,或干脆留空以设为Workflow根目录。若要创建专门用于存放备份文件的文件夹,请访问iOS上的iCloud App创建,因为Workflow无权限创建iCloud文件夹,文件夹不存在会报错。

实例二:恢复Workflow

了解了Data URI相关知识,这个workflow就很容易实现了。

9f0dd23b4a664dcea9ea24a4bcdae99c.png

点击下载:Workflows Recovery

355392.jpg

功能

该workflow从iCloud中抓取Workflows Backup创建的备份压缩包,解压后供你选择要还原的workflow,最后通过Data URI的相关应用将旧workflow快速导入Workflow App中,替换还原,瞬间完成。

同时能显示备份距今时间。

得益于Workflow 1.6更新的Choose from List动作,列表能够详细显示每个旧workflow的图标、信息。选完后点击Replace进行替换恢复。

注意

需要注意的是在Workflows Recovery开头的Get File动作中,备份文件的名称请与Workflows BackupMake Archive动作中的填写一致。

实例三:导出Workflow

如本文开头所述,新版Workflow Gallery对于广大中国用户的实际作用有限,不适合厌恶英语的人群,不接地气,那么我们可以通过一些本土渠道比如微信进行workflow的分享,保证所有人用得舒心。

Workflows Export基于Workflows Backup稍微修改而成。

9609f8d7edde4f94b39134169182003c.png

点击下载:Workflows Export

355397.jpg

功能

抓取所有workflow,供你选择要分享的部分,打包后用微信等通讯工具分享。

分享后,对方可以使用下面的实例四进行快速导入。

实例四:导入workflow

本workflow为Share Extension,在通讯软件中对.zip压缩包点击分享按钮后调用,比如在微信中点击用其他应用打开。

Workflows Import基于Workflows Recovery修改而成。

33a8b1bb8b5d4e0aa07d9e126cdb645b.png
点击下载:Workflows Import

355406.jpg

功能

同样是利用了Data URI,Workflows Import将你分享的压缩包解压并循环导入所有workflow。只需一次点击即可完成工作(得益于Import URL中silent参数的使用)。

注意

请确保导入者的机器中没有和分享的workflow同名的文件,不然导入动作会在碰到同名文件时中止,弹出对话框要你选择是否Replace。

考虑到该workflow的受众主要是新手,他们的机器中想必没有多少,或者说没有同名的workflow,我觉得导入中断这个事这不是个问题。实在不行请让导入者将自己的Workflow先清空,或者稍微修改下Workflows Import,改改导入后的名称确保不重名即可。

结语

除了对.wflow文件的处理外,Data URI在其它地方也有特殊的运用,比如可以写一个workflow通过这种URI在iOS中导入字体文件。还请各位自行发掘。