Z2USB-NPAPI

Материал из IronLogic Wiki
Перейти к: навигация, поиск

Для работы с Z2USB и Z2USB Mifare из JavaScript используется плагин npZ2USB.

Windows-версия поддерживает как ActiveX API (Internet Explorer), так и NPAPI (практически все остальные браузеры).

Список протестированных платформ и браузеров:

FreeBSD9/amd64

  • Opera 12
  • Firefox 20
  • Chromium 25

Ubuntu12.04/i386

  • Firefox 21

Ubuntu12.04/amd64

  • Firefox 18
  • Firefox 21

MacOS X 10.8

  • Safari 6.0.5
  • Chrome 27
  • Firefox 21

WindowsXP

  • Opera 12
  • Firefox 21
  • Chrome 27
  • Safari 5.1.7
  • Internet Explorer 8

Ссылки для скачивания:

Демонстрационная страничка работы плагина:

npZ2USB-demo

Javascript API

  • plugin().Z2USB - инициализация объекта считывателя
  • Z2USB().connect(device) - сопоставление объекта считывателя и физического устройства, с подключением
  • Z2USB().card_callback(callBack) - назначение callback-функции, вызываемой при появлении/исчезновении карты в поле считывателя
  • Z2USB().send(data) - отправка команды на считыватель
  • Z2USB().disconnect() - отключение считывателя, освобождение физического устройства

Изменения в Javascript API - r231

  • Z2USB().search() - поиск порта, к которому подключен считыватель

Пример JavaScript:


  function gotCard(data)        // Called when reader sees card
  {
    alert("Card: " + data);
  }

  function checkCard()          // Manually check reader for card
  {
    var ret;
    ret = z2.send('r');
    if (ret < 0) { alert ("Request returned error: " + ret); };
  }

  function plugin0()
  {
    return document.getElementById('plugin0');
  }

  plugin = plugin0;

  function pluginLoaded()
  {
    var device = "";           // /dev/ttyU0, /dev/ttyUSB0 etc.
    z2 = plugin().Z2USB;       // Get a reader object
// --- since r231
    device = z2.search();
// ---
    z2.connect(device);        // Connect to reader
    z2.card_callback(gotCard); // Setup callback function
  }

  function pluginValid()
  {
    if(plugin().valid){
      alert("npZ2USB loaded successfully!");
    } else {
      alert("npZ2USB failed to load");
    }
  }