如何在Swift中构建QR Code Scanner App

那么,什么是QR码? 我相信大多数人都知道QR码是什么。 如果您还没有听说过,请看一下上面的图片-这是一个QR码。

QR(快速响应的缩写)代码是由电装公司开发的一种二维条形码。 QR码最初是为跟踪制造中的零件而设计的,近年来,它已在消费者空间中流行,作为一种编码着陆页URL或营销信息的方式。 与您熟悉的基本条形码不同,QR码包含水平和垂直方向的信息。 因此,这有助于其以数字和字母形式存储大量数据的能力。 我不想在这里进入QR码的技术细节。 如果您想了解更多信息,可以访问QR码的官方网站。

随着iPhone和Android手机的普及,QR码的使用已大大增加。 在某些国家/地区,QR码几乎可以找到。 它们出现在杂志,报纸,广告,广告牌,名片甚至食物菜单中。 作为iOS开发人员,您可能想知道如何才能让您的应用程序读取QR码。 在iOS 7之前,您必须依靠第三方库来实现扫描功能。 现在,您可以使用内置的AVFoundation框架实时发现和读取条形码。

创建用于扫描和翻译QR码的应用从未如此简单。

  快速提示:您可以生成自己的QR码。 只需访问http://www.qrcode-monkey.com 

我们将要构建的演示应用程序非常简单明了。 但是,在继续构建演示应用程序之前,必须了解iOS中的任何条形码扫描(包括QR码扫描)完全基于视频捕获,这一点很重要。 这就是在AVFoundation框架中添加条形码扫描功能的原因。 请记住这一点,因为它将帮助您理解整个章节。

那么,演示应用程序如何工作?

看看下面的截图。 这是应用程序用户界面的外观。 该应用程序的工作原理与视频捕获应用程序非常相似,但是没有录制功能。 启动该应用程序后,它将利用iPhone的后置摄像头来识别QR码并自动对其进行识别。 解码信息(例如URL)显示在屏幕底部。

就这么简单。

要构建该应用程序,您可以从http://www.appcoda.com/resources/swift42/QRCodeReaderStarter.zip下载项目模板开始。 我已经预先构建了情节提要,并为您链接了消息标签。 主屏幕与QRCodeViewController类相关联,而扫描仪屏幕与QRScannerController类相关联。

您可以运行入门项目来看看。 启动应用程序后,您可以点击“扫描”按钮以调出扫描视图。 稍后,我们将实现此视图控制器以进行QR码扫描。

现在您已经了解了入门项目的工作原理,让我们开始并在应用程序中开发QR扫描功能。

我已经在项目模板中创建了该应用程序的用户界面。 UI中的标签用于显示QR码的解码信息,并且与QRScannerController类的messageLabel属性关联。

如前所述,我们依靠AVFoundation框架来实现QR码扫描功能。 首先,打开QRScannerController.swift文件并导入框架:

完成编辑后,请部署应用程序并再次在真实设备上运行它。 轻按扫描按钮应调出内置相机并开始捕获视频。 但是,此时,消息标签和顶部栏已隐藏。 您可以通过添加以下代码行来修复它。 这将移动消息标签和顶部栏,使其显示在视频层的顶部。

启动后,点击扫描按钮,然后将设备指向图11.4中的QR码。 该应用程序立即检测到代码并解码信息。


本文首次发布在AppCoda.com上,是《 iOS 12使用Swift编程》一书的示例章节。


在社交媒体平台上关注我们:
面子书:facebook.com/AppCodamobile/
Twitter:twitter.com/AppCodaMobile
Instagram的:instagram.com/AppCodadotcom

如果您喜欢这篇文章,请单击👏按钮并分享以帮助其他人找到它! 随时在下面发表评论。