Iphone Zbarsdk不';无法使用webviewcontroller正确实现
我最终将zbarsdk嵌入到我的应用程序中,没有错误消息。然而,我发现了一个新问题。我需要打开将从qrcode收集到webviewcontroller的url。问题是扫描后,结果显示得太晚(需要很长时间才能显示)或下降,有时甚至显示以前的结果(网站)。这是我的密码Iphone Zbarsdk不';无法使用webviewcontroller正确实现,iphone,objective-c,zbar-sdk,Iphone,Objective C,Zbar Sdk,我最终将zbarsdk嵌入到我的应用程序中,没有错误消息。然而,我发现了一个新问题。我需要打开将从qrcode收集到webviewcontroller的url。问题是扫描后,结果显示得太晚(需要很长时间才能显示)或下降,有时甚至显示以前的结果(网站)。这是我的密码 #import <UIKit/UIKit.h> #import "ZBarSDK.h" @interface QR_ReaderViewController : UIViewController <ZBarRead
#import <UIKit/UIKit.h>
#import "ZBarSDK.h"
@interface QR_ReaderViewController : UIViewController <ZBarReaderDelegate>{
}
@property (weak, nonatomic) IBOutlet UIWebView *webView1;
@end
#导入
#输入“ZBarSDK.h”
@接口QR_ReaderViewController:UIViewController{
}
@属性(弱、非原子)IBUIWebView*webView1;
@结束
还有,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
#导入“QR\u ReaderViewController.h”
@接口QR_ReaderViewController()
@结束
@实现QR_ReaderViewController
NSString*resultText;
-(id)initWithCoder:(NSCoder*)aDecoder{
self=[super initWithCoder:aDecoder];
如果(自我){
self.title=@“QR阅读器”;
[[UIApplication sharedApplication]设置StatusBarHidden:NO with animation:UIStatusBaranimationne];
}
回归自我;
}
-(无效)未收到记忆警告{
[超级记忆警告];
}
-(无效)视图卸载{
[超级视频下载];
}
-(无效)viewDidLoad{
[超级视图下载];
ZBarReaderViewController*读卡器=[ZBarReaderViewController新建];
reader.readerDelegate=self;
[reader.scanner设置符号:ZBAR_UPCA配置:ZBAR_CFG_启用到:0];
reader.readerView.zoom=1.0;
[自我呈现视图控制器:读卡器动画:是完成:无];
//网络视图结果
NSURL*url=[NSURL URLWithString:resultText];
NSURLRequest*requestObj=[nsurlRequestRequestWithURL:url];
[_webView1 loadRequest:requestObj];
}
-(void)imagePickerController:(UIImagePickerController*)读卡器已使用信息完成PickingMediaWithInfo:(NSDictionary*)信息
{
id结果=
[信息对象forkey:ZBarReaderControllerResults];
ZBarSymbol*符号=nil;
用于(结果中的符号)
打破
resultText=symbol.data;
[reader DismissViewControllerInitiated:YES completion:nil];
}
+(NSString*)getResultText
{
返回结果文本;
}
@结束
我做错什么了吗 您似乎将
webview结果代码
放错了位置。。请尝试下面的代码。。它可能会解决你的问题
- (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];
}
-(void)viewDidLoad{
[超级视图下载];
ZBarReaderViewController*读卡器=[ZBarReaderViewController新建];
reader.readerDelegate=self;
[reader.scanner设置符号:ZBAR_UPCA配置:ZBAR_CFG_启用到:0];
reader.readerView.zoom=1.0;
[自我呈现视图控制器:读卡器动画:是完成:无];
}
-(void)imagePickerController:(UIImagePickerController*)读卡器已使用信息完成PickingMediaWithInfo:(NSDictionary*)信息
{
id结果=
[信息对象forkey:ZBarReaderControllerResults];
ZBarSymbol*符号=nil;
用于(结果中的符号)
打破
resultText=symbol.data;
//webview结果和显示先前结果的解决方案
NSURL*url=[NSURL URLWithString:resultText];
NSURLRequest*requestObj=[nsurlRequestRequestWithURL:url];
[_webView1 loadRequest:requestObj];
//克服延误
如果(![reader正在呈现]){
[自我否定读者:读者];
}
否则{
[自执行选择器:@selector(dismissReader:)with object:reader afterDelay:0.7];
}
}
-(无效)dismissReader:(UIImagePickerController*)读卡器
{
[reader DismissViewControllerInitiated:YES completion:nil];
}