iOS Workflow 分享 - Scan QR 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 变量中去。

接下来「Get URLs from Input」这个 action 可以把 Content 中看似 URL 的内容提取出来,因此如果 Content 是 URL 我们就会得到 URL 否则就没有内容。为了验证 URL 提取成功,检查提出出来的内容包含 ://,如果有的话那就一定是 URL 了,否则就是非 URL 的文本。
对于 URL,我提供 5 个操作的选项;对于非 URL,只有其中的 2 个。然后下面是根据用户作出的选择,执行 5 个操作之一:
- 打开(仅限 URL):使用 iOS 系统方式打开这个 URL。如果这是个 deeplink 或者 Universal Link,那就会在对应的 app 中打开。
- 在 Chrome 中打开(仅限 URL):因为我用 Chrome for iOS 而非 Mobile Safari,所以我会对普通网页使用这个选项。
- 在 Opener 中打开(仅限 URL):如果我想尝试用这个网页对应的 app 打开的话。我在 Opener 中设置了如果找不到对应的 app 就默认提示我用 Chrome 打开。
- 复制:复制字符串。
- 分享:调用系统的分享功能。
订阅
我之后还会分享更多 Workflow,不想错过的话欢迎通过邮件或 RSS/Atom 订阅我的博客。
iOS Workflow 分享 - Scan QR Code的更多相关文章
- iOS Workflow 分享 - Create QR Code
上次我分享了一个 Scan QR Code 的 Workflow,这次我分享一个正好相反的.如果我要分享一个 URL(或者是一段非常短的文本)给别人,我就可以用这个 Workflow 来生成 QR C ...
- iOS Workflow 分享 - Debug Action
有时候我们想要知道别人的 app 在调用 Share Extension 时提供了什么类型的数据以及具体数据是什么,我们可以自己在 Xcode 里面写个 app 去接收别人 app 的数据,但我们也可 ...
- Delphi xe7 FireMonkey / Mobile (Android, iOS)生成 QR Code完整实例
这个实例在windows.OS X.IOS和Android等平台运行正常.本文参考这个网站提供的方法:http://zarko-gajic.iz.hr/firemonkey-mobile-androi ...
- DNN - Modules - QR Code Generator
Dotnetnuke 平台上的二维码模块.支持DNN 7.x平台的安装 QR码(快速响应码)是二维条形码.随着移动设备市场正以快速的步伐,QR码正在成为非常重要的营销工具.与移动电话或平板电脑的扫描, ...
- Chrome & QR Code Reader
Chrome & QR Code Reader Allows to generate a QR Code for the current page and scan a QR Code usi ...
- 痞子衡嵌入式:走进二维码(QR Code)的世界(1)- 引言
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是走进二维码(QR Code)的世界专题的引言. 如今二维码可以说是深入走进大家的生活了,推送名片.扫码支付都离不开它,大家几乎每天都会和 ...
- 痞子衡嵌入式:走进二维码(QR Code)的世界(2)- 初体验(PyQt5.11+MyQR2.3+ZXing+OpenCV4.2.0)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是走进二维码(QR Code)的世界专题之初体验. 接上篇 <走进二维码(QR Code)的世界(1)- 引言> 继续更文,在 ...
- C#通过第三方组件生成二维码(QR Code)和条形码(Bar Code)
用C#如何生成二维码,我们可以通过现有的第三方dll直接来实现,下面列出几种不同的生成方法: 1):通过QrCodeNet(Gma.QrCodeNet.Encoding.dll)来实现 1.1):首先 ...
- 使用PHP QR Code生成二维码
使用PHP QR Code生成二维码 HP QR Code是一个PHP二维码生成类库,利用它可以轻松生成二维码,官网提供了下载和多个演示demo,查看地址: http://phpqrcode.so ...
随机推荐
- Django日志记录详细的报错信息
当服务器500错误的时候,普通日志只会记录一行500的request信息,并不会记录详细的报错定位 [ERROR] 2019-06-12 15:07:03,597 "GET /api/v1/ ...
- 数据库——SQL-SERVER CREATE-TABLES
给出数据库实验所需要的“CREATE-TABLES.SQL”文件 use master go if exists (select * from dbo.sysdatabases where name ...
- 关于WIN7下IE8IE7浏览器无法安装微信支付商户证书的解决方案
关于WIN7下IE8IE7浏览器无法安装微信支付商户证书的解决方案 解决方案就是使用 chrome浏览器 默认的chorme浏览器 打开微信商户平台 会提示让安装控件 然后反复安装 其实要解决这个 ...
- UserControl关闭
直接 Application.Current.Shutdown();关闭程序.
- shell 命名管道,进程间通信, ncat作http server
命名管道基础 命名管道也被称为FIFO文件, 在文件系统中是可见的,并且跟其它文件一样可以读写! 命名管道特点: 当写进程向管道中写数据的时候,如果没有进程读取这些数据,写进程会堵塞 当读取管道中的数 ...
- 投色子--html demo
这是之前客户想要看的一个效果,不知道放在博客里面有没有关系,当做备份吧. <!DOCTYPE HTML> <html> <head> <meta charse ...
- hadoop mapreduce求解有序TopN(高效模式)
1.在map阶段对数据先求解改分片的topN,到reduce阶段再合并求解一次,求解过程利用TreeMap的排序特性,不用自己写算法. 2.样板数据,类似如下 1 13682846555 192.16 ...
- 【转载】编程语言排行榜2019年7月 TIOBE编程语言排行榜2019年最新版
TIOBE在前段时间公布了编程语言排行榜2019年7月的数据,编程语言7月的排名有了新的变化,Python继教占领第三名,Java还是稳居第一,C++本月又降了0.91%.下面一起来看看2019年7月 ...
- laravel 之路由和MVC
一.路由 Routes\; 1. 路由简介 简单的说就是将用户的请求转发给相应的程序进行处理. 作用就是建立url和程序之间的映射 请求类型get . post.put.patch.delete 2. ...
- MongoDB 读偏好设置中增加最大有效延迟时间的参数
在某些情况下,将读请求发送给副本集的备份节点是合理的,例如,单个服务器无法处理应用的读压力,就可以把查询请求路由到可复制集中的多台服务器上.现在绝大部分MongoDB驱动支持读偏好设置(read pr ...