I've integrated the zxing library into my app but part of my requirement is to be able to continually scan QR codes. I've accomplished this to a certain degree by dismissing and re-presenting the zxing widget but it appears to be too slow for my client. Is there another way to reset the widget to start scanning again?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
You will have to tamper with the ZXing library, fortunately it's not hard.
Add the following method to the ZXingWidgetController
In ZXingWidgetController.h
- (void)reset;
In ZXingWidgetController.m
- (void)reset
{
decoding = YES;
[overlayView setPoints:nil];
wasCancelled = NO;
}
Now, in your ZXing delegate, edit the following method
- (void)zxingController:(ZXingWidgetController*)controller didScanResult:(NSString *)result
{
//Handle your result as you want to
[controller reset];
}
Make sure you don't call [self dismissModalViewControllerAnimated:NO];
as it will remove the scanning view.
回答2:
Why not try for another great library ZBar - http://zbar.sourceforge.net/
Its quite easy and always work for me! You must have a look into if you are scanning QR codes in your app.