#328

Чтобы сканер мог использовать камеру, должны совпасть три условия: портал открыт по HTTPS, браузер получил разрешение от пользователя, а на iOS — сканер запускается только по нажатию на кнопку. Если что-то не так — сканер не открывается или показывает чёрный экран. Здесь подробно про каждое условие.

Условие 1: HTTPS обязателен

Современные браузеры (Chrome, Firefox, Safari, Edge, Samsung Internet) разрешают доступ к камере только на сайтах с защищённым соединением — это значит, что адресная строка должна начинаться с https:// и обычно содержать иконку замка.

Если ваш портал открыт по http:// (без «s») — сканер не запустится. Это не настройка портала, это требование браузера, обойти его нельзя. Обратитесь к администратору фирмы — он должен настроить SSL-сертификат для домена портала.

Исключение: для разработки браузеры разрешают доступ к камере на http://localhost и http://127.0.0.1. Но это не помогает обычным пользователям — у них всегда полный домен.

Условие 2: Разрешение от пользователя

При первом нажатии на кнопку сканера браузер показывает всплывающий запрос: «{сайт} запрашивает доступ к камере» с двумя кнопками «Разрешить» / «Заблокировать».

  • Нажали «Разрешить» — браузер запомнит выбор, в дальнейшем сканер будет открываться сразу.
  • Нажали «Заблокировать» — браузер тоже запомнит, и при следующих попытках сканер будет молча не работать (запрос больше не появится автоматически).
  • Закрыли окно (свайп / тап вне) — обычно равнозначно «отложил решение», в следующий раз запрос появится снова.

Как изменить решение, если случайно заблокировали

Chrome / Edge (Android, Windows, macOS):

  1. Нажмите на иконку замка слева от адреса портала.
  2. Откроется список разрешений; найдите «Камера».
  3. Смените значение с «Блокировать» на «Разрешить».
  4. Перезагрузите страницу.

Safari (iOS):

  1. Откройте Настройки iOS → Safari → Камера.
  2. Найдите ваш домен в списке и поменяйте на «Разрешить» или «Спрашивать».

Firefox:

  1. Иконка щита либо замок слева от адреса.
  2. «Разрешения» → «Использовать камеру» → «Спрашивать» или «Разрешить».

Условие 3: iOS Safari — только по нажатию кнопки

На iPhone и iPad сканер не запускается «сам», даже если у него есть разрешение и HTTPS работает. Apple ввела правило: доступ к камере возможен только из обработчика пользовательского жеста — то есть после реального тапа по кнопке. Поэтому:

  • Сканер всегда запускается тапом по кнопке в шапке портала, никаких автоматических всплывающих окон при загрузке страницы.
  • Если на странице есть JavaScript-логика, которая «открывает сканер сразу при появлении» — на iOS она не сработает, придётся всё равно нажимать кнопку.

Приватность: что происходит с видео

  • Видео не передаётся на сервер. Распознавание QR происходит локально в браузере — кадры обрабатываются в памяти устройства и сразу удаляются.
  • На сервер уходит только результат — распознанная строка (содержимое QR-кода).
  • Видео не записывается. Как только окно сканера закрылось, поток с камеры останавливается, индикатор камеры в системе гаснет.
  • В фоне камера не работает — портал не имеет доступа к камере, когда окно сканера закрыто.

Если других проблем нет, но сканер всё равно не работает

См. отдельную статью «Решение проблем со сканером».