在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
排着长队等待结账的商店,帮助旅客记录包裹和航班信息的机场,帮助大型零售商处理大量无聊的存货清单,这些场景非常适合使用条码扫描器。此外,条码扫描器也能帮消费者进行智能购物和产品分类。既然它这么棒,不如我们在 iPhone 上做一个吧! 幸运的是,对 Apple 开发者来说,实现条码扫描非常容易,苹果大法好!我们会使用 AV Foundation 来实现一个小巧的 iPhone app,能够扫描 CD 上的条码,获取专辑的一些重要信息,并将内容输出到 App 视图中。能够实现读取条码的功能,这非常的酷,但是我们的野心不止于此,我们会对识别的条码内容作进一步的操作。 我本不该再多啰嗦,不过还是友情提醒一下,这个条码扫描 app 只有在设备具有摄像头时才能正确工作。记住这一点,准备一台有摄像头的 iOS 设备,我们开始吧! 关于 CDBarcodes今天我们创建的应用叫做 CDBarcodes —— 它还是很智能的。当设备扫描到一个条码时,我们会将处理后的条码内容发送给 Discogs 数据库,然后获得专辑的名称、艺术家以及发布年份。Discogs 的数据库中有大量的音乐数据,所以我们基本上能查到所有数据。 Discogs先从 Discogs 开始。首先,我们需要登录或者注册一个 Discogs 账户。登录之后,拉到网站的最底端,在 footer 的最左边边栏,点击 API。 在 Discogs API 页面,点击左边栏 Database 中的 Search。 这个就是我们将会用到的 API。我们使用 “title” 和 “year” 参数来获取专辑信息。 现在我们需要将查询的 URL 保存到我们的 CDBarcodes 中。在 现在我们可以很方便地在应用中使用 回到刚才的 Discogs API 网站。我们需要创建一个新应用,取得 API 的使用资格。在导航栏中,网页的最顶部,点击 Create an App。之后点击 Create an Application 按钮。 应用名称的话,输入 “CDBarcodes + 你的名字”,或者其他你喜欢的名字。description 字段可以写: “This is an iOS app that reads barcodes from CDs and displays information about the albums.”
最后,点击 Create Application 按钮。 在最后的结果页面,我们能够得到使用条码来做一些操作的资格信息。 拷贝 Consumer Key,粘贴到 同 URL 一样,现在我们可以在应用中很方便地使用这些变量了。 CocoaPods为了能够和 Discogs API 通信,我们使用一个优秀的第三方库管理工具:CocoaPods。如果想要了解更多关于 CocoaPods 的信息,或者想学习如何安装它,可以到它的官网查询。 有了 CocoaPods 就可以安装第三方库,我们会使用 Alamofire 来请求网络,使用 SwiftyJSON 来处理从 Discogs 返回的 JSON 数据。 下面我们把这两个库引入到 CDBarcodes 工程中! CocoaPods 安装好之后,打开终端,进入 CDBarcodes 目录,初始化 CocoaPods,命令如下: 使用 Xcode 打开 Podfile:将下面内容拷贝到 Podfile 中:最后,使用下面的命令来下载 Alamofire 和 SwiftyJSON: 现在让我们回到 Xcode 中!切记要打开的是 识别条码AV Foundation 框架提供了识别条码的工具。我们来大概描述一下工作原理。
在 同时,我们需要遵循 在 首先,创建一个 如果你的设备没有摄像头,那就无法扫描条码。我们添加了一个处理失败场景的方法。如果没有摄像头,会弹出一个提示框来提示用户,换一个有摄像头的设备来扫描 CD 的条码。 回到 下一步需要声明我们将要扫描的条码类型。对我们而言,我们需要使用 EAN-13 条码。有意思的是,我们扫描的条码并非都是 EAN-13 类型的;一些有可能是 UPC-A 类型,这可能会造成识别的问题。 Apple 通过在前面加上 0 来将 UPC-A 条码转换为 EAN-13 条码。UPC-A 条码只有 12 位,EAN-13 条码,和你猜测的一样,是 13 位。这个自动转化特性的好处是,我们在设置 如果摄像头有问题,我们需要使用 我们已经拥有了扫描条码的强大能力,现在需要做的是预览扫描画面。使用 然后,我们就可以开始扫描了。 在 首先,我们需要从 在看 我们需要在 必须去掉扫描内容中的空格。去掉空格之后,我们需要判断条码是 EAN-13 还是 UPC-A 类型。如果是 EAN-13 类型,不需要额外的操作。如果是 UPC-A 条码,它被转化为了 EAN-13 类型,我们需要把它还原成原有的格式。 就像我们之前讨论的那样,苹果在 UPC-A 条码的前头加上一个 0 来将其转换为 EAN-13,所以我们需要判断其是否以 0 开头,如果是的话,删掉它。如果没有这一步,Discogs 无法识别这个数字,我们也没有办法得到正确的数据。 拿到处理后的条码数据之后,我们将它传给 查看 数据服务在 接下来,声明一些变量来存储我们从 Discogs 获得的原始数据。根据 Bionik6 的建议,我们将使用 然后创建 Alamofire GET 请求。这里通过解析 JSON 得到专辑的名称和年份。我们分别把得到的名称和年份原始数据赋值给 现在,我们从 Discogs 上获得了数据,下面要做的就是展示给全世界!好吧,展示给 Album 模型在专辑的数据模型 是时候秀一波专辑数据了!在 当监听到通知的时候, 测试 CDBarcodes我们的 app 完成啦!当然,我们可以直接从 CD 封面看到专辑名称、艺术家和发行年份,但是用我们的 app 要有趣得多!为了更好地测试 CDBarcodes 应用,我们需要找一些 CD 和唱片。这样就有可能同时遇到 EAN-13 和 UPC-A 条码,真正发挥 app 的威力。 在 这里是完成之后的 CDBarcodes 代码。 总结无论是商务人士、购物者还是普通人,条码扫描器都一个特别有用的工具。因此,能够开发条码扫描也非常有用。 扫描那部分比较有趣。在获得扫描的数据之后,我们需要对数据做进一步操作,例如判断是 EAN-13 还是 UPC-A 类型。我们需要找到转化数据的正确方式,然后老司机就上路了。 如果想了解更多内容,可以读取其他的 |
请发表评论