显示标签为“ios”的博文。显示所有博文
显示标签为“ios”的博文。显示所有博文

2018年6月15日星期五

iOS Workflow 分享 - Create QR Code

Workflow: Create QR Code

上次我分享了一个 Scan QR Code 的 Workflow,这次我分享一个正好相反的。如果我要分享一个 URL(或者是一段非常短的文本)给别人,我就可以用这个 Workflow 来生成 QR Code 图片然后发送给别人。

如果你还没有安装 Workflow,你可以先去免费下载安装上。然后打开 Create QR Code 并点击「GET WORKFLOW」,这个 Workflow 就会被自动导入到你的 Workflow 中去,之后你在分享菜单中就可以调用 Workflow 生成 QR Code 图片了。

原理

这是一个超级简单的 Workflow,我们只需要调用「Generate QR Code」这个 action 就能把字符串转为 QR Code 图片。我在分享 QR Code 图片前还加了一个「Quick Look」的 action,让我检查一下这个 QR Code。接着我们就可以把图片分享出去了。

Workflow: Create QR Code

我觉得这个 Workflow 虽然做了它该做的事情,但其实还有很大的优化空间。通常我们需要的不是简单地分享一个 QR Code 图片,而是把 QR Code 嵌入到一张更复杂的图片里去。Workflow 有一定的图片处理功能,需要的话肯定是可以把 QR Code 嵌入到我们挑选的另外一张(或一组)图片里去。

订阅

我之后还会分享更多 Workflow,不想错过的话欢迎通过邮件RSS/Atom 订阅我的博客。

2018年6月10日星期日

iOS Workflow 分享 - Scan QR Code

Workflow: Scan Code

很多时候我们无意识地用微信扫描一个 QR Code,然后无论打开的是什么我们用就是了。我经常会好奇到底 QR Code 编码的是什么信息,到底是一个 ID 呢,还是一个 URL(可能是 deeplink)呢,还是一个 JSON 呢。所以我做了这个简单的 Workflow,先把 QR Code 的纯文本内容显示出来,然后再让我选择使用哪个 app 来接收这个字符串。如果这个字符串是 URL,Workflow 会提示我用浏览器打开,我也可以用 Opener 来打开 deeplink。

如果你还没有安装 Workflow,你可以先去免费下载安装上。然后打开 Scan QR Code 并点击「GET WORKFLOW」,这个 Workflow 就会被自动导入到你的 Workflow 中去,然后你就可以调用它来扫描 QR Code 了。

此外顺便推荐一下上面提到那个叫做 Opener 的 app。它做的事情很简单,你给它一个网站的 URL,如果那个网站有对应的 app 的话,它会尝试通过 deeplink 在 app 里面打开这个 URL 对应的内容。举个例子,我在 Mobile Safari 上打开了一个知乎的问题,然后我可以把这个网页的 URL 发送给 Opener 让它帮我打开知乎 app 且在知乎 app 内打开同一个问题。

原理

这个 Workflow 最重要的 action 是第一步,利用「Scan QR/Bar Code」把 QR Code 扫描出来。这一个 action 会返回 QR Code 本后编码的字符串,然后我们把它存到 Content 变量中去。

Workflow: Scan Code

接下来「Get URLs from Input」这个 action 可以把 Content 中看似 URL 的内容提取出来,因此如果 Content 是 URL 我们就会得到 URL 否则就没有内容。为了验证 URL 提取成功,检查提出出来的内容包含 ://,如果有的话那就一定是 URL 了,否则就是非 URL 的文本。

对于 URL,我提供 5 个操作的选项;对于非 URL,只有其中的 2 个。然后下面是根据用户作出的选择,执行 5 个操作之一:

  1. 打开(仅限 URL):使用 iOS 系统方式打开这个 URL。如果这是个 deeplink 或者 Universal Link,那就会在对应的 app 中打开。
  2. 在 Chrome 中打开(仅限 URL):因为我用 Chrome for iOS 而非 Mobile Safari,所以我会对普通网页使用这个选项。
  3. 在 Opener 中打开(仅限 URL):如果我想尝试用这个网页对应的 app 打开的话。我在 Opener 中设置了如果找不到对应的 app 就默认提示我用 Chrome 打开。
  4. 复制:复制字符串。
  5. 分享:调用系统的分享功能。

订阅

我之后还会分享更多 Workflow,不想错过的话欢迎通过邮件RSS/Atom 订阅我的博客。

2018年6月2日星期六

iOS Workflow 分享 - Debug Action

Workflow: Debug Action

有时候我们想要知道别人的 app 在调用 Share Extension 时提供了什么类型的数据以及具体数据是什么,我们可以自己在 Xcode 里面写个 app 去接收别人 app 的数据,但我们也可以用 Workflow 内置的「View Content Graph」来展示数据。相对于自己写个 app 而言,显然是免费的 Workflow 要简单得多。

如果你还没有安装 Workflow,你可以先去免费下载安装上。然后打开 Debug Action 并点击「GET WORKFLOW」,这个 Workflow 就会被自动导入到你的 Workflow 中去,然后你就可以在其它 app 里分享数据给这个 Workflow 然后让它显示给你看了。

演示

我用 Foursquare 的 app 打开三藩 Union Square 这个地标,然后选择分享,接着就能在这个 Workflow 里看到 Foursqare 的分享功能都传递了什么数据:图片、地址、名称和 URL。

原理

这个 Workflow 做的事情超级简单:它只是把输入的数据传给「View Content Graph」这个步骤,让它显示调试信息,接着它会重新调用 Share Extension 让分享流程跑下去。之所以重新调用 Share Extension,是因为有时候我们需要先看看分享的是什么信息,再决定分享到哪个 Share Extension,这时候把这个 Workflow 插入在中间就很方便了。这个 Workflow 能够显示调试信息,之后又回到正常的分享流程。

Workflow: Debug Action

订阅

我之后还会分享更多 Workflow,不想错过的话欢迎通过邮件RSS/Atom 订阅我的博客。