Получите считыватель QR-кода с интегрированной библиотекой Apple AVFoundation
QR-коды - это двухмерные штрих-коды, разработанные автомобильной промышленностью в 1994, но теперь они широко используются во многих областях, таких как банковское дело, промышленность, коммерция или социальная сфера.
В проектах, над которыми вы работаете, возможно, потребуется интегрировать эту технологию, поэтому давайте посмотрим, как создать считыватель QR-кода с библиотекой AVFoundation в Swift .
Мы идем на работу
После создания нового проекта в Xcode первое, что нужно сделать, это перейти в info.plist, чтобы установить разрешения камеры.
Теперь вам нужно добавить новый ключ, прокрутите вниз до Конфиденциальность - Описание использования камеры, а затем вам нужно установить относительную строку
Как на этом экране:
Я написал Используется для сканирования QR-кода, но вы можете написать другой.
Что ж, теперь, чтобы хорошо рассмотреть, создайте видоискатель в формате .png, чтобы включить его в проект.
Как видите, чтобы сделать демонстрацию более красивой, я также добавил контроллер навигации.
Чтобы получить видоискатель, вы можете использовать любое графическое приложение, например Photoshop или Affinity Photo, или найти его в Интернете.
Пора начинать кодировать
Перейдите в ViewController.swift и начните импортировать библиотеку AVFoundation, указав делегата, ответственного за сбор метаданных, рядом с классом ViewController.
Не забывая импортировать и видоискатель.
Теперь создайте переменную, которая будет содержать предварительный просмотр видеозаписи, а затем она будет содержать представление, которое вы покажете пользователю, когда он захочет отсканировать QR-код. Код.
Затем откройте CaptureSession (в настоящее время пустое), определите используемое устройство (iPhone, iPad и т. Д.), А затем получите захват ввода, который будет вернуть значение после проверки на ошибку.
Следующим шагом будет определение константы, в которой будет обрабатываться вывод.
Теперь вам нужно быть осторожным: обработать полученный вывод (из сеанса) наилучшим образом, и вы можете сделать это, обработав его в основном потоке .
Это даст вам наилучшие результаты с точки зрения производительности.
После этого следующие шаги перед запуском сеанса будут:
- Установите тип вывода, в данном случае QR.
- Объедините переменную видео с сеансом
- Установить видеокадры
- Установите уровень видео на весь экран
- Установите подуровень с помощью видоискателя
И, наконец, вы можете запустить сеанс.
Почти готово!
Ваше приложение может получить доступ к камере и сканировать QR-коды, а затем получить результат, но вы пока не можете его использовать.
Затем вызовите функцию metadataOutput, в которой вы предоставляете вывод в виде массива и где вы проверяете, есть ли что-то в нем или вам нужно продолжить сканирование.
Чтобы просмотреть содержимое QR-кода, в этом примере вы распечатаете значение в строке и покажете его в предупреждении, но сначала вам нужно проверить, является ли объект в массиве типом QR.
Пришло время запустить приложение на вашем реальном устройстве.
Чудесно! Все прошло хорошо!
Поздравляем! Теперь вы можете сканировать любой QR-код и знать, что скрыто.
Заключение
Это простой пример того, как получить считыватель QR-кода и работать с ним.
С помощью сканирования можно сделать так много всего, что я надеюсь, это маленькое окошко по большой теме было полезно.
Вы можете узнать больше об этом, посмотрев на образец проекта, доступный на GitHub: https://github.com/OryDS/Swift_QRCode_Reader