2015-04-29 9 views
0

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

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

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

Любые идеи?

Спасибо.

ответ

1

Я не знаю о pdf417.mobi SDK, но вам не обязательно использовать конкретный 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); 
}