Chain Multiple Apps with URL Schemes

继下午研究了许久的 Due app 的 URL Scheme(由于我忽略了 x-source 这个参数,导致我的 callback 命令一直不成功,一度让我以为 Due 不支持 URL Scheme 了)之后,我又开始研究如何利用 URL 串联多个软件。早在一年前 Drafts 刚开始成名之时就有国外的 URL Scheme 爱好者发了个利用 URL Scheme 串联五个软件的视频1,由于我同样有这样的需求——

将网页发送到 Pocket / Instapaper → 在 Due 中设定一个阅读提醒 → 最后返回浏览器。

由于这个视频是一年前发布的,里面用的办法有点老,于是我想结合新生效率软件 Workflow 来完成这一系列的操作:

With Workflow

首先在 Drafts 中新建一个 Action,指向 URL:

due://x-callback-url/add?title=[[title]]&x-source=next&x-success={{x-callback-instapaper://x-callback-url/add?url=[[title]]&x-success=[[title]]

在 Workflow 中新建,设置 Action ExtensionURL

4129b85bjw1enl4rcq0isj20hr04vq3b

然后拖拽这两个操作:

4129b85bjw1enl4t39f3qj20hs0dt0ty

其中 Action 填上第一步中创建的 Action,我的叫 Instapaper

使用过程中,只要点击 Safari 下方的发送

4129b85bjw1enl4wwrov4j2025025a9u

选择run workflow,再点击第二步新建的 Workflow,一切就顺利成章地进行了。

缺点:
* 由于没找到打开 Safari 的 URL Scheme,所以最后只能以重新打开链接的方式来回到Safari
* 在 Google Chrome 中无法使用这种方法2

In Chrome

由于我更喜欢用 Chrome(与桌面版的进行同步),所以在 Chrome 中我采用了 JavaScript 书签的办法:

新建书签,内容为:

javascript:(function() {window.location='drafts4://x-callback-url/create?text='+encodeURIComponent(window.location)+'&action=Instapaper';})();

在 Drafts 中新建 Action:

due://x-callback-url/add?title=[[title]]&x-source=next&x-success={{x-callback-instapaper://x-callback-url/add?url=[[title]]&x-success=googlechrome://

注意在最后的 x-success 处指向的是 Google Chrome。

使用过程中,打开书签,即可完成一系列操作。


PS

  • 第二种方法其实一年前 Alex 就提到了,可惜 Google 了半天只找到一个错误的 JavaScript 书签,只能自己研究,花了我几乎一个晚上的时间(大多数时间都不是浪费在怎么使用 JavaScript,而是浪费在细节的地方比如在 Drafts 中新建的命令是 create 而不是 add
  • 不越狱无法指定 Chrome 为默认浏览器,这一点比较难过。

  1. Drafts Workflow 
  2. 后来发现其实是可以的,点击菜单,分享 

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s