Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1.  Добавьте в файл Info.plist строчки:

    Code Block
    languagexml
    titleInfo.plist
    <key>NFCReaderUsageDescription</key>
    <string>Allow NFC scanning</string>
    <key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
    <array>
        <string>F0000000005275746F6B656E</string>
        <string>A00000039742544659</string>
    </array>


  2. В файл Entitlements.plist добавьте строчки:

    Code Block
    languagexml
    titleEntitlements.plist
    <key>com.apple.developer.nfc.readersession.formats</key>
    <array>
        <string>NDEF</string>
        <string>TAG</string>
    </array>


    Info
    titleСертификат разработчика iOS

    Убедитесь, что ваш сертификат разработчика для iOs позволяет разрабатывать приложения с использованием NFC меток.


  3. Перед началом взаимодействия с Рутокен ЭЦП 3.0 NFC запустите функцию startNFC. Функция определена во фреймворке RtPcsc, который можно взять из Рутокен SDK в директории sdk\mobile\ios\pcsc\lib.
  4. Функция startNFC запускает в отдельном потоке окно с просьбой приложить NFC карту к телефону или планшету. На вход она принимает callback, который будет вызван в случае ошибок, например если окно закрылось по таймауту или пользователь нажал на клавишу "Отмена".

    Напрямую вызвать эти функции не получится т.к. они имеют Obj-C сигнатуру и в качестве callback принимает литеральный блок. Но это ограничение можно обойти воспользовавшись Xamarin оберткой над блоками, например, как это сделано здесь. Подробнее о том, как писать такие обертки написано здесь.
  5. После окончания взаимодействия с NFC токеном запустите функцию stopNFC из фреймворка RtPcsc. 
  6. Поток с окном предложения приложить токен и поток работы с PKCS#11 функциями надо синхронизировать: токен не сразу распознается системой и нужно некоторое время подождать прежде чем начать работать с ним. У нас в коде это сделано с помощью функции C_WaitForSlotEvent и атомарный флаг остановки работы с nfc.

...