JCNFCWatcher

@protocol JCNFCWatcher <NSObject>

Протокол поиска токенов на NFC смарт-картах.

Методы

getTokensWithAlertMessage

- (void)getTokensWithAlertMessage:(NSString * _Nullable)alertMessage predicate:(JCTokenPredicateType _Nullable)predicate handler:(JCTokensHandlerType)handler;

Запуск поиска токенов на NFC смарт-карте.

Метод открывает NFC сессию и ожидает появления NFC смарт-карты. Метод асинхронный.
Если будет замечена не подходящая смарт-карта, то операция завершится с соответствующей ошибкой.
Если будет замечена подходящая смарт-карта, то с нее будут считываться все доступные токены.

Процесс фильтрации токенов можно контроллировать при помощи передаваемого в аргумент predicate предиката. Если предикат не передавать, то в итоговый список войдут все найденные токены.

Операцию поиска токенов можно завершить 3-мя способами:

  1. убрать смарт-карту от устройства;
  2. передать предикат и в необходимый момент установить stop в YES;
  3. дождаться 25 секунд, когда iOS автоматически закроет NFC сессию.

Примечание

Внутри handler не стоит вызывать методы execBlockWithParameters или execBlock, т.к. это приведет к попытке открыть вторую NFC сессию, которая завершится ошибкой (см. Выполнение операций над токенами).

Пример: Получение списка токенов с NFC.

Аргументы:

  • alertMessage (NSString*) отображаемое сообщение пользователю при открытии NFC сессии;
  • predicate (JCTokenPredicateType) - предикат для фильтрации токенов. При помощи него можно выбирать необходимые токены и прервать процесс поиска токенов;
  • handler (JCTokensHandlerType) - обработчик результата выполнения операции. Внутри обработчика нельзя вызывать execBlock или execBlockWithParameters, т.к. закроется NFC сессия и соединение с токеном исчезнет.