Zbarsdk 无法使用 webviewcontroller 正确实现



我最终将ZBARSDK嵌入了我的应用中,而没有错误消息。但是,我发现了一个新问题。我需要打开将从qrcode收集到WebViewController的URL。问题在于,扫描后,结果以太似乎太晚(出现了很长时间)或出现,甚至有时甚至显示先前的结果(网站)。这是我的代码.h

#import <UIKit/UIKit.h>
#import "ZBarSDK.h"
@interface QR_ReaderViewController : UIViewController <ZBarReaderDelegate>{
}
@property (weak, nonatomic) IBOutlet UIWebView *webView1;
@end

和.m

#import "QR_ReaderViewController.h"
@interface QR_ReaderViewController ()
@end
@implementation QR_ReaderViewController
NSString *resultText;
- (id)initWithCoder:(NSCoder *)aDecoder {
self = [super initWithCoder:aDecoder];
if (self) {
    self.title = @"QR Reader";
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
}
return self;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)viewDidUnload {
[super viewDidUnload];
}
- (void)viewDidLoad {
[super viewDidLoad];
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
[reader.scanner setSymbology: ZBAR_UPCA config: ZBAR_CFG_ENABLE to: 0];
reader.readerView.zoom = 1.0;
[self presentViewController:reader animated:YES completion:nil];
//webview result
NSURL *url = [NSURL URLWithString:resultText];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[_webView1 loadRequest: requestObj];
}
- (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info
{
id <NSFastEnumeration> results =
[info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for(symbol in results)
    break;
resultText = symbol.data;
[reader dismissViewControllerAnimated:YES completion:nil];
}
+ (NSString*) getResultText
{
return resultText;
}
@end

我做错了吗?

看来您已经将 webview result code放在错误的位置。

- (void)viewDidLoad {
    [super viewDidLoad];
    ZBarReaderViewController *reader = [ZBarReaderViewController new];
    reader.readerDelegate = self;
    [reader.scanner setSymbology: ZBAR_UPCA config: ZBAR_CFG_ENABLE to: 0];
    reader.readerView.zoom = 1.0;
    [self presentViewController:reader animated:YES completion:nil];
}
- (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info
    {
    id <NSFastEnumeration> results =
    [info objectForKey: ZBarReaderControllerResults];
    ZBarSymbol *symbol = nil;
    for(symbol in results)
        break;
    resultText = symbol.data;
   //webview result and Solution of showing Previous Result
   NSURL *url = [NSURL URLWithString:resultText];
   NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
   [_webView1 loadRequest: requestObj];
  // To Overcome Delay  
  if (![reader isBeingPresented]) {
        [self dismissReader:reader];
       }
       else{
         [self performSelector:@selector(dismissReader:) withObject:reader afterDelay:0.7];
       }
    }

 - (void) dismissReader:(UIImagePickerController*) reader
  {
     [reader dismissViewControllerAnimated:YES completion:nil];
  }

最新更新