墨客更新支持 URL Schemes,这里有一些有趣的玩法

墨客和第三方微博客户端

墨客出现之前的时代大概算是“微博第三方客户端 1.0 时代”,如果你从那时候就开始玩 App 的话,你脑子里大概会出现Weico随享微博物语以及微格等第三方微博客户端。但是这个时期的微博客户端做得都很“不完整”,比如评论转发、转发评论、评论并转发这些很基本的“刚需”类功能都不能很好地支持。虽然已经有客户端开始发展“个性”功能,但是因为雪中送炭没有搞好,锦上添花反而就显得多余。

而墨客的出现大概可以算作微博第三方客户端 2.0 时代的起始,这个时代也大概可以算是个第三方客户端的黄金时代,因为当时微博还没有爆发性地搞出来各种功能和表情,像“赞”这样的东西还没有出现,微博的一切都还像是一个 Microblog 的“社交”平台。在这个时期的微博客户端都有了完整的功能,并在此基础上开始拼一些各自的创意。而且从这个时期开始,微博客户端已经成了我个人认为“没法写测评和教学”的那类 App 了。因为它们首先并不难用、很好上手,其次是微博的功能实在太杂,我曾经是打算写墨客测评的,而且专门列了张表来统计有多少需要写的功能,列完表格发现任务太重直接放弃。有兴趣你可以看看这张表(现在可能要往上列的东西可能更多)。

在 1.0 时代,我的设备上常会有多个微博第三方客户端,而从有了墨客开始,虽然陆续有一些新兴的微博客户端的起起落落,但个人认为,第三方微博客户端墨客一直都是领跑者。所以我手机里的微博客户端长期以来只有墨客一个。偶尔在微博上看到的其它客户端的尾巴大多是测试用。

在今天墨客发布了它的 2.9 版更新,最亮眼的功能是支持了丰富的 URL Schemes,墨客也因此成为了一款对 URL Schemes 提供丰富支持微博客户端 App(包括官方客户端)。我个人一直认为是否支持 URL Schemes 跟 x-callback-URL 是评判 iOS 平台上同类 App 的作者是否用心、是否追求效率以及作品是否优秀的重要标准之一。换句话说,如果两个 App 你感觉差不多,那你就看谁支持 URL Schemes,支持得越细越好。因为用 Launch Center Pro 这样的 App,URL Schemes 可以为你的操作减少干扰提高效率。

在墨客官网大家可以看官方的 URL Schemes 介绍,但是不懂的大概还是不懂,所以下文主要为大家说明各 URL 的用法和使用思路。

墨客的 URL Schemes

抛去打开墨客这个单一功能以外,墨客提供的 URL Schemes 大概分为三项:查看、搜索和发布。

查看部分

比方说你下班的路上用墨客刷微博,看到了个想做的菜谱。有了这部分的 URL,你就可以做到在准备做饭的那个时间点被 Due 提醒,点开提醒后直接跳转到墨客打开这条微博。

查看部分分两个方面:查看某条微博查看某个用户

注意这里都是查看而不是查找,它打开的不是搜索界面而直接是目标界面,所以需要你给出非常精确的数据。比如说你要看 @越狱指南 的主页,通过这部分的 URL 你可以直达 @越狱指南 的主页,而不是先给你出一个页面上面列了一些和越狱指南有关无关的用户,让你来挑选。

下面我们分别来介绍查看部分的这两个方面。

查看某条微博

我们先说查看微博部分,微博有三种方式来定位某条具体的微博:通过这条微博的 MID、ID 还有链接,在墨客里对应的 URL 分别为:

  • 通过微博的 MID 查看微博:moke:///status?mid=微博MID
  • 通过微博的 ID 查看微博:moke:///status?id=微博ID
  • 通过微博的链接查看微博:moke:///link?url=微博正文页面链接

其中前两项,也就是微博的 MIDID 对普通用户并没有太大的作用。MID 是网页 URL 路径的最后一部分,比如一条微博的 URL 是 http://www.weibo.com/2208752785/CjadX3vUY 它的 MID 就是 CjadX3vUY 这部分。而这条微博的 ID 就是通过一定的格式对微博 MID 进行转换。

对于开发者来说搞清楚这些区别是重要的,但对普通用户来说,它们不仅没啥用,而且很难通过日常操作去获取。所以如果你想要查找某条微博,通过这条微博的链接来找是最简单的。在墨客上对应的 URL 就是 moke:///link?url= ,你只要在这个 URL 的等号后面放上微博链接,就可以直接在墨客打开这条微博。

如果你使用 Launch Center Pro,你可以把等号后面直接设置为剪切板,也就是 moke:///link?url=[clipboard] 。这样,你复制好一条微博的链接,再直接在 Launch Center Pro 里打开这个动作就可以在墨客查看这条微博。

使用情境

通过这条微博的 URL,结合 Due,可以做到定时查看这条微博,换句话说,是提醒自己查看这条微博。

打开你的微博收藏看看,大概里面有很多条微博,但是你却没看过。这个时代就是这样,你认为你要“稍后读”的东西你稍后就会看,但是实际上,因为你当下却总有读不完的东西,而且你存起来的东西你慢慢会忘记,这导致你要稍后读的东西越来越多,最后稍后读变成永不读1

那么有了这个功能,我们收藏微博的时候就不要单独点那个,而可以是设置一个 Workflow,把你收藏的这条微博设定个特定的时间去读它。比如说你下半路上的路上用墨客刷微博,看到了个想做的菜谱。有了这部分的 URL,你就可以做到在准备做饭的那个时间点被 Due 提醒,点开提醒后直接跳转到墨客打开这条微博。

具体做法

整体的思路是通过 Workflow。

1

这个 Workflow 的思路是:

首先从墨客获取微博链接,比如说微博链接是:http://www.weibo.com/2208752785/CjadX3vUY

然后为了我们是在墨客打开的,我们要在这段链接之前加上moke:///link?url=,变成moke:///link?url=http://www.weibo.com/2208752785/CjadX3vUY

最后再在这之后加上 Due 添加新任务的 URL:due://add?title=,变成due://add?title=moke:///link?url=http://www.weibo.com/2208752785/CjadX3vUY

最后 Open URLs 就解决问题了。

下载该 Workflow

为什么要用墨客打开这个链接而不直接用 Due 打开网页?

  • 第一,我们的前提是你是在墨客看到的微博,然后直接在墨客里用 Workflow 进行保存,这样你再在墨客里直接打开原微博的话,因为内容是已缓存的,所以不需要加载,而网页是需要重新读取一遍内容的,等待时间偏长;
  • 第二,客户端的阅读体验还是要好过 Web 端的吧;
  • 第三,Web 端有广告。

查看某位用户

如果你有一些微博用户你需要视奸不能错过他们发布的任何消息,你经常要单独地查看他们的首页以及 Timeline,那么你会需要这个功能。

墨客对视奸单独查看某个用户的方法提供了 4 种 URL:

  • moke:///user?id=用户ID
  • moke:///user?screen_name=用户昵称
  • moke:///user?domain=用户个性域名
  • moke:///link?url=用户主页链接

我们看得出作者也是把能用的办法都用了。在这四种方式里,我们平时可能更惯用用户昵称,但是用户昵称这个东西它其实是可变的,改了以前的就失效了,所以用它其实最不稳妥。最稳妥的大概是用户ID,因为你注册完以后这玩意是不会变的。

有的人改了个性域名以后不能直接在他的主页看到他的 ID,但是还是有别的办法来查看用户ID 的。最简单的办法应该是右键一个人的头像,然后选择在新窗口打开图片,这样你会在新窗口看到 http://tp3.sinaimg.cn/2569291082/180/40010956703/1 这样的链接,而第一串数字,也就是 2569291082 就是这个人的用户 ID。

使用情境

这个功能我感觉也不像是临时用的,也就是说,这功能不是你临时想要看谁了,就使用这个 URL Schemes 跳到那个用户的页面。

我感觉它更适合视奸“特别”关注,比如有些你悄悄关注的,或者出现在你的 Timeline 里被别人看见会引起尴尬的用户,你都可以在需要的时候使用这个功能来查看这个(些)人的微博。

具体做法

在 Launch Center Pro 里设置以表格的形式设定一个动作,比如你想对我(@JailbreakHum)和 @越狱指南 特别关注,那么这条动作的 URL 应该是:

moke:///user?id=[list|@JailbreakHum=2208752785|@越狱指南=2569291082]2

这样每次你在 Launch Center Pro 里选择这个动作,就会弹出你之前设定好的列表,你就可以选择你想视奸、翻牌“特别”关注的对象了。

搜索部分

搜索我们都太熟悉,而且与查看部分不同,搜索时我们不用给出特别准确的内容,只要给出关键字即可。

墨客在搜索部分提供了两个 URL 分别用来搜索用户和搜索微博:

  • moke:///search/statuses?query=关键字
  • moke:///search/users?query=关键字

你把这两条 URL 放到 Launch Center Pro 里,把关键字替换成[prompt],就可以在每次打开动作时只输入关键字,就跳转到墨客进行搜索了。

For 懒人和理解能力差的人(把下面的 URL 直接粘贴到 Launch Center Pro 的 URL 栏即可):

  • moke:///search/statuses?query=[prompt]
  • moke:///search/users?query=[prompt]

发布部分

对日常使用来说最有用的大概是发布的部分,可玩的点也比较多。

墨客对发布部分提供的 URL 是:

  • moke://账号昵称或ID(缺省使用当前账号)/post?text=微博内容

它的意思是,如果你一般只使用一个微博账户,那么你只要在 Launch Centre Pro 里用moke:///post?text=[prompt]这个 URL 就可以了,这个 URL 将默认使用你墨客当前使用的帐号。

多账户发微博

从这个 URL 我们也可以看出来,我们可以用 Launch Center Pro 进行不同账户发微博的操作。比如说我想在 Launch Center Pro 里选择使用 @越狱指南 发微博还是用 @JailbreakHum 发微博,可以用下面的这条 URL:

moke://[list|@JailbreakHum=2208752785|@越狱指南=2569291082]/post?text=[prompt]

注意,里面我使用的是 ID(关于 ID 我之前已经讲过了,是新浪给你提供的数字,是不变的),(如果你不常改昵称的话)你也可以直接使用昵称。

这样每次选择这个动作,我们会看到一个列表,让我们选择发布微博的账户:

2

不管你墨客当前使用的是哪个账户,只要你登录了这个列表里的账户,你就能够选择其中的任意账户,并在墨客里直接使用你选择的账户发送微博或继续编辑微博。

分享文摘

我们常会在微博上分享在网上看到的文章,内容大概不外乎包括标题链接文中金句。结合 Workflow 和墨客的 URL Schemes,我做了一个 Workflow 的动作3,可以直接把网上看到的文章通过墨客分享出来,格式为:

“选中部分”——`标题`:`链接`

点此下载这个 Workflow

但是如果你只是想发布微博而不是必须用“墨客”来发布的话,最后可能改成分享,使用 iOS 内置的微博分享功能体验会更好,因为会减少 App 的跳转。

定时发送微博

这一条其实和“定时阅读微博”一样,都是利用了 Due,但是定时发送微博使用 Launch Center Pro 个人感觉实用性很差,所以在这里不详述具体做法。权当给不太熟悉 URL Schemes 的朋友留个小练习,参照“定时阅读微博”的 URL,做个“定时发送微博”的动作吧。

墨客的 x-callback-URL

本文重点不是介绍 x-callback-URL,所以这里对它的介绍比较简略。

虽然文档中并未提及,但是墨客本身支持一部分 x-callback-URL 的语法,即只有 x-success 的部分。

x-callback-URL 出自 Drafts 的开发者 Agile Tortoise,是 URL Schemes 的延展和发挥。抽象地说,一个 App 只支持 URL Schemes 的话,它只能作为一个单独的动作,或者一连串动作的起始。但当一个 App 支持 x-callback-URL,那么它就可以一连串动作的任何一个部分,使用场景更为灵活。

具体地说 x-callback-URL 的灵活在于,在你进行了一个设定好的操作以后,App 会根据这个操作的结果——成功、失败或者是被取消——来进行下一步的选择。它基于的语法是:

  • x-success:当成功时……
  • x-error:当失败时……
  • x-cancel:当被取消时……

墨客对 x-callback-URL 的支持如前文所说只支持了 x-success 部分,也就是说你可以在一个动作执行成功以后默认设定执行下一个动作,使用情境我临时想了一个——来抛砖引玉——查看某人的主页成功以后跳转到扇贝单词去背单词。我来解释一下我的思路:微博这种东西属于精神零食,也就是说吃起来没饱容易失控,看一条搞笑微博用几秒,看一张搞笑 Gif 用几十秒,看完觉得不过瘾一直看看看看看不完,最后一抬头看表,过了一个半小时。这对于 Fo 了一堆段子手的人来说更是如此。所以如果你想悄悄地看一个人的状况,看完就离开微博去干正事儿,墨客的这个 x-callback-URL 就可以做到:

moke:///url?id=对方的微博 ID[^ID 并非昵称,前文有写如何获取 ID。]&x-success={{shanbay://}}

对失败(error)和取消(cancel)的情况,墨客似乎并没有涉及。虽然对于微博客户端来说,“失败”和“取消”这样的操作情境不会有很多。但是如果是支持了 x-callback-URL 的话,全套支持还是好的,不一定谁就能想出有意思的用法。我临时想了两个分别关于失败和取消两个情形的用法:

用户定位失败后搜索带有用户昵称的微博

在 Launch Center Pro 里我们设定通过输入微博昵称来跳转到某人的主页,结果这个人改昵称了。这时候就出现了失败(error)。当这时候我们要再找这个人,最好的方法是搜索带有他/她原始昵称的微博,如果有人 at 过他/她,而他/她曾经在微博里评论过,就能在评论里找到他/她的新昵称。所以如果墨客支持 x-error,就能把查看用户和搜索微博的 URL 联合起来,在 Launch Center Pro 里调用剪切板,做到先查看,如果成功就直接看,如果失败就搜索微博这么个功能。

取消发布微博后返回 Safari

前文介绍了一个在 Safari 中利用 Share sheet 从墨客分享读到的文章的 Workflow。但有时候,如果你选取的文字加上文章的题目最后超过了 140 字,你要么修改一下,要么重新找另外一句短一点的有代表性的文字。如果你希望做后者的话,就需要墨客支持 x-cancel:。如果墨客支持 x-cancel: 的话,你就可以设定让墨客在取消发布微博后跳转到 Safari——而这时候 Safari 里应该是你想要分享的那篇文章——然后重新选择一段文字。

图标及结语

一般这种“选择触发型”的 URL Schemes 我建议使用 Launch Center Pro 而不是 Drafts 来作为启动器,Launch Center Pro 里的话有个不得不解决的问题就是图标显示。使用墨客目前在 Launch Center Pro 里是没有图标显示的,下面将给出一些解决办法。

如何在 Launch Center Pro 中显示墨客的图标

下载墨客图标的图片然后添加到 Launch Center Pro 中:

3

获取墨客图标可以使用这个 Workflow,在 App Store 中任意软件界面通过 Share Sheet 激活这个动作,就能够获得该软件的图标。

结语

墨客这一批的 URL Schemes 格式非常规范,规范的 URL 可玩性才高,可调教性才强。从这里也可以看出来墨客作者确实是个认真对待作品的人。

不过虽然这波 URL 涉及比较广泛但还是不够全面,比如(发布或查看)私信、收藏、转发、评论、列表等功能还没有支持 URL Schemes,期待日后这些部分的 URL Schemes 加入。


  1. 我也陷入过一段这个阶段,但找到了一个比较适合自己的办法跳出了这循环,日后整理了会分享出来
  2. 出现了 Launch Center Pro 里列表的用法,如果你不太清楚,正好可以使用这条 URL Schemes 来好好琢磨一下,到底是怎么个意思。由于本文不是专门写 Launch Center Pro 教程的,就不具体展开了。
  3. 该 Workflow 改编自 @do-fine 的 Excerpt。