Смарт-карты
Подписка на уведомления о приложении смарт карт
Для получения уведомления о приложенной смарт-карте в клиентском коде необходимо вызвать функцию со следующей сигнатурой:
const sCardAttachSub = await window.asm.subToSmartCardAttach(handler)
Где, handler - функция-обработчик, которая будет вызвана в момент приложения смарт-карты, sCardAttachSub - объект-подписка, имеющий метод unsubscribe, вызов которого отменит подписку.
Функция-обработчик имеет следующую сигнатуру:
const handler = (card) => {}
Где, card - объект-структура с результатами чтения данных с приложенной смарт-карты, который имеет поля:
- atr с типом Uint8Array. Представляет cообщение типа Answer-to-Reset, содержащее информацию о карте (ISO7816-4)
- type с типом string. Сообщает о типе метки и может принимать только два значения: CARD - в случае если приложена смарт-карта, EMULATED - в случае, если приложено средство эмуляции карты (например, смартфон)
- uid с типом Uint8Array. Представляет структуру типа Unique-IDentifier, содержащую уникальный идентификатор карты, установленный ее производителем (ISO14443-3A)
Пример подписки на получение уведомления о приложенной смарт-карте с выводом полученных данных в консоль браузера и последующей отпиской:
// Создание функции-обработчика, которая производит вывод полученной структуры в консоль
const handler = (card) => console.log(card)
// Подписка на получение уведомления о приложенной смарт-карте
const sCardAttachSub = await window.asm.subToSmartCardAttach(handler)
// ... Ожидание приложенния смарт-карты
// Отмена подписки
await sCardAttachSub.unsubscribe()