由于现在电子市场的兴盛,越来越多的地方需要使用到二维码扫描来进行一些认证性的操作,今天就给大家到来关于二维码扫描的简单实现(测试需要真机)
#import "ViewController.h"
#import "QRCodeReaderViewController.h"//二维码
#import "TZYTwoDimensionDodeViewController.h"//自己创建的VC
@interface ViewController ()<QRCodeReaderDelegate>
@property (nonatomic, retain) QRCodeReaderViewController *qrCodeReaderVC;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = [UIColor whiteColor];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(100, 100, 100, 50);
[button setTitle:@"扫码" forState:UIControlStateNormal];
button.backgroundColor = [UIColor blueColor];
[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
#pragma mark-二维码扫描
- (void)buttonAction:(UIButton *)sender
{
NSArray *types = @[AVMetadataObjectTypeQRCode];
self.qrCodeReaderVC = [QRCodeReaderViewController readerWithMetadataObjectTypes:types];
self.qrCodeReaderVC.delegate = self;
[self.qrCodeReaderVC setCompletionWithBlock:^(NSString *resultAsString) {
[self dismissViewControllerAnimated:YES completion:^{
NSLog(@"----------------%@", resultAsString);
if (!resultAsString.length == 0) {
TZYTwoDimensionDodeViewController *web = [[TZYTwoDimensionDodeViewController alloc]init];
//把扫到的url传递给下一个页面
web.url = resultAsString;
[self.navigationController pushViewController:web animated:YES];
}
}];
}];
[self presentViewController:self.qrCodeReaderVC animated:YES completion:NULL];
}
//读取结果后
- (void)reader:(QRCodeReaderViewController *)reader didScanResult:(NSString *)result
{
[self dismissViewControllerAnimated:YES completion:^{
NSLog(@"%@", result);
}];
}
//取消返回
- (void)readerDidCancel:(QRCodeReaderViewController *)reader
{
[self dismissViewControllerAnimated:YES completion:NULL];
}
#import <UIKit/UIKit.h>
@interface TZYTwoDimensionDodeViewController : UIViewController
@property (nonatomic, copy) NSString *url;
@end
.m里代码:#import "TZYTwoDimensionDodeViewController.h"
@interface TZYTwoDimensionDodeViewController ()
@property (nonatomic, retain) UIWebView *webView;
@end
@implementation TZYTwoDimensionDodeViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor orangeColor];
self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[self.view addSubview:self.webView];
self.webView.backgroundColor = [UIColor clearColor];
[self getWebViewData];
}
- (void)getWebViewData
{
NSURL *url = [NSURL URLWithString:self.url];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:request];
}
这样我们就能实现二维码的扫描了!