Получите считыватель QR-кода с интегрированной библиотекой Apple AVFoundation

QR-коды - это двухмерные штрих-коды, разработанные автомобильной промышленностью в 1994, но теперь они широко используются во многих областях, таких как банковское дело, промышленность, коммерция или социальная сфера.

В проектах, над которыми вы работаете, возможно, потребуется интегрировать эту технологию, поэтому давайте посмотрим, как создать считыватель QR-кода с библиотекой AVFoundation в Swift .

Мы идем на работу

После создания нового проекта в Xcode первое, что нужно сделать, это перейти в info.plist, чтобы установить разрешения камеры.

Теперь вам нужно добавить новый ключ, прокрутите вниз до Конфиденциальность - Описание использования камеры, а затем вам нужно установить относительную строку

Как на этом экране:

Я написал Используется для сканирования QR-кода, но вы можете написать другой.

Что ж, теперь, чтобы хорошо рассмотреть, создайте видоискатель в формате .png, чтобы включить его в проект.

Как видите, чтобы сделать демонстрацию более красивой, я также добавил контроллер навигации.

Чтобы получить видоискатель, вы можете использовать любое графическое приложение, например Photoshop или Affinity Photo, или найти его в Интернете.

Пора начинать кодировать

Перейдите в ViewController.swift и начните импортировать библиотеку AVFoundation, указав делегата, ответственного за сбор метаданных, рядом с классом ViewController.

Не забывая импортировать и видоискатель.

Теперь создайте переменную, которая будет содержать предварительный просмотр видеозаписи, а затем она будет содержать представление, которое вы покажете пользователю, когда он захочет отсканировать QR-код. Код.

Затем откройте CaptureSession (в настоящее время пустое), определите используемое устройство (iPhone, iPad и т. Д.), А затем получите захват ввода, который будет вернуть значение после проверки на ошибку.

Следующим шагом будет определение константы, в которой будет обрабатываться вывод.

Теперь вам нужно быть осторожным: обработать полученный вывод (из сеанса) наилучшим образом, и вы можете сделать это, обработав его в основном потоке .

Это даст вам наилучшие результаты с точки зрения производительности.

После этого следующие шаги перед запуском сеанса будут:

  1. Установите тип вывода, в данном случае QR.
  2. Объедините переменную видео с сеансом
  3. Установить видеокадры
  4. Установите уровень видео на весь экран
  5. Установите подуровень с помощью видоискателя

И, наконец, вы можете запустить сеанс.

Почти готово!

Ваше приложение может получить доступ к камере и сканировать QR-коды, а затем получить результат, но вы пока не можете его использовать.

Затем вызовите функцию metadataOutput, в которой вы предоставляете вывод в виде массива и где вы проверяете, есть ли что-то в нем или вам нужно продолжить сканирование.

Чтобы просмотреть содержимое QR-кода, в этом примере вы распечатаете значение в строке и покажете его в предупреждении, но сначала вам нужно проверить, является ли объект в массиве типом QR.

Пришло время запустить приложение на вашем реальном устройстве.

Чудесно! Все прошло хорошо!

Поздравляем! Теперь вы можете сканировать любой QR-код и знать, что скрыто.

Заключение

Это простой пример того, как получить считыватель QR-кода и работать с ним.

С помощью сканирования можно сделать так много всего, что я надеюсь, это маленькое окошко по большой теме было полезно.

Вы можете узнать больше об этом, посмотрев на образец проекта, доступный на GitHub: https://github.com/OryDS/Swift_QRCode_Reader