Приложение iOS AIR не получает пользовательский ввод после закрытия считывателя штрих-кода ANE

У меня есть простое приложение AIR для iOS с текстовым полем и кнопкой сканирования. При нажатии кнопки «Сканировать» приложение запускает ANE на основе SDK pdf417.mobi, который использует камеру iPad для декодирования штрих-кодов PDF417. ANE работает нормально и возвращает все сканы обратно в AIR.

При закрытии он закрывает камеру и возвращается обратно в AIR, но я вообще не могу взаимодействовать с приложением AIR. Никакие прикосновения не распознаются.

Я добавил событие ENTER_FRAME для непрерывной трассировки, чтобы проверить, живо ли приложение после закрытия ANE и продолжает ли оно трассировку. Это просто пользовательский ввод, который не работает.

Есть идеи?

Спасибо.


person Mihai    schedule 29.04.2015    source источник


Ответы (1)


Я не знаю о SDK pdf417.mobi, но вам вообще не нужно использовать специальный SDK, подобный их, для сканирования pdf417.

библиотека Zxing на Android поддерживает следующее: https://github.com/zxing/zxing, а iOS также поддерживает изначально: https://developer.apple.com/library/ios/technotes/tn2325/_index.html

Для Adobe Air. Для поддержки pdf417 и других форматов вы можете использовать этот ANE из наших https://github.com/myflashlab/barcode-ANE

и вот как вы должны его инициализировать и настроить для чтения pdf417 только для справки:

import com.myflashlab.air.extensions.barcode.Barcode;
import com.myflashlab.air.extensions.barcode.BarcodeEvent;

var _ex:Barcode = new Barcode();
_ex.addEventListener(BarcodeEvent.RESULT, onResult);
_ex.addEventListener(BarcodeEvent.CANCEL, onCancel);

if (_ex.isSupported())
{
    trace("Please wait...");

    // to read only the selected barcode types. use an array to read one or more barcodes
    _ex.open([Barcode.PDF417], File.applicationDirectory.resolvePath("com_doitflash_barcode_beep.mp3"), true, "Cancel");
}
else
{
    trace("isSupported: ", _ex.isSupported());
}

function onCancel(e:BarcodeEvent):void
{
    trace("scan canceled")
}

function onResult(e:BarcodeEvent):void
{
    trace("type is: ", e.param.type)
    trace("data is: ", e.param.data);
}
person MyFlashLabs    schedule 30.12.2015