zxing непрерывное сканирование - iphone

Я интегрировал библиотеку zxing в свое приложение, но одним из моих требований является возможность постоянного сканирования QR-кодов. Я добился этого в определенной степени, отклонив и повторно представив виджет zxing, но он кажется слишком медленным для моего клиента. Есть ли другой способ сбросить виджет, чтобы снова начать сканирование?


person noahd    schedule 23.06.2011    source источник


Ответы (2)


Придется повозиться с библиотекой ZXing, благо это не сложно.

Добавьте следующий метод в ZXingWidgetController.

В ZXingWidgetController.h

- (void)reset;

В ZXingWidgetController.m

- (void)reset
{
    decoding = YES;
    [overlayView setPoints:nil];
    wasCancelled = NO;
}

Теперь в делегате ZXing отредактируйте следующий метод

- (void)zxingController:(ZXingWidgetController*)controller didScanResult:(NSString *)result
{
    //Handle your result as you want to

    [controller reset];
}

Убедитесь, что вы не вызываете [self dismissModalViewControllerAnimated:NO];, так как это удалит представление сканирования.

person Radu Lucaciu    schedule 23.06.2011
comment
Спасибо, это было очень полезно для меня! - person Spawnrider; 29.04.2013

Почему бы не попробовать другую замечательную библиотеку ZBar — http://zbar.sourceforge.net/
легко и всегда работает для меня! Вы должны проверить, сканируете ли вы QR-коды в своем приложении.

person Saurabh    schedule 23.06.2011
comment
ZBar не поддерживает новый iPod Touch с камерой или iPhone 3g, каким бы четким ни было изображение. (Или не было, когда я в последний раз пробовал.) Вот почему я переключился на zxing. zbar также имеет более ограничительную лицензию, что может быть проблемой. - person geon; 17.01.2012
comment
@geon, лицензия на ZBar — LGPL 2.1, которая подходит для использования в магазине приложений (согласно их FAQ), но пользователи имеют право запрашивать объектные файлы для вашего приложения, чтобы они могли его перекомпилировать. Фигово! - person Ben Clayton; 18.12.2012