二维码扫描

 

//根据输入的字符生成二维码

- (IBAction)generateQRCodeAction:(UIButton *)sender {

    /*字符转二维码

     导入 libqrencode文件

     引入头文件#import "QRCodeGenerator.h" 即可使用

     */

    self.QRCodeImageView.image = [QRCodeGenerator qrImageForString:self.showResultLabel.text imageSize:self.QRCodeImageView.bounds.size.width];

}

//开始扫描

- (IBAction)startScanAction:(UIButton *)sender {

    /*扫描二维码部分:

     导入ZBarSDK文件并引入一下框架

     AVFoundation.framework

     CoreMedia.framework

     CoreVideo.framework

     QuartzCore.framework

     libiconv.dylib

     引入头文件#import “ZBarSDK.h” 即可使用

     当找到条形码时,会执行代理方法

     

     - (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info

     

     最后读取并显示了条形码的图片和内容。*/

    

    ZBarReaderViewController * readerVC = [ZBarReaderViewController new];//[[ZBarReaderViewController alloc] init];

    

    readerVC.readerDelegate = self;

    readerVC.supportedOrientationsMask = ZBarOrientationMaskAll;

    

    ZBarImageScanner * scanner = readerVC.scanner;

    [scanner setSymbology:ZBAR_I25 config:ZBAR_CFG_ENABLE to:0];

    [self presentViewController:readerVC 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;

    NSLog(@"info = %@", info);

    //给二维码的imageView赋值

    self.QRCodeImageView.image =

    [info objectForKey: UIImagePickerControllerOriginalImage];

    

//    [reader dismissModalViewControllerAnimated: YES];//被弃用

    [reader dismissViewControllerAnimated:YES completion:nil];

    

    //判断是否包含 'http:'

    NSString *regex = @"http+:[^\\s]*";

    //谓语

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];

    

    //判断是否包含 'ssid:'

    NSString *ssid = @"ssid+:[^\\s]*";;

    NSPredicate *ssidPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",ssid];

    

    self.showResultLabel.text =  symbol.data ;

    NSLog(@"symbol.data = %@", symbol.data);

    if ([predicate evaluateWithObject:self.showResultLabel.text]) {//Returns a Boolean value that indicates whether a given object matches the conditions specified by the receiver.

        

        UIAlertView * alert = [[UIAlertView alloc]initWithTitle:nil

                                                        message:@"It will use the browser to this URL"

                                                       delegate:nil

                                              cancelButtonTitle:@"Close"

                                              otherButtonTitles:@"Ok", nil];

        alert.delegate = self;

        alert.tag=1;//设置是那个alertView

        [alert show];

    }

    else if([ssidPre evaluateWithObject:self.showResultLabel.text]){

        

        NSArray *arr = [self.showResultLabel.text componentsSeparatedByString:@";"];

        

        NSArray * arrInfoHead = [[arr objectAtIndex:0] componentsSeparatedByString:@":"];

        

        NSArray * arrInfoFoot = [[arr objectAtIndex:1] componentsSeparatedByString:@":"];

        

        

        self.showResultLabel.text=

        [NSString stringWithFormat:@"ssid: %@ \n password:%@",

         [arrInfoHead objectAtIndex:1],[arrInfoFoot objectAtIndex:1]];

        

        

        UIAlertView * alert = [[UIAlertView alloc]initWithTitle:self.showResultLabel.text

                                                        message:@"The password is copied to the clipboard , it will be redirected to the network settings interface"

                                                       delegate:nil

                                              cancelButtonTitle:@"Close"

                                              otherButtonTitles:@"Ok", nil];

        

        

        alert.delegate = self;

        alert.tag=2;

        [alert show];

        

        UIPasteboard *pasteboard=[UIPasteboard generalPasteboard];

        //        然后,可以使用如下代码来把一个字符串放置到剪贴板上:

        pasteboard.string = [arrInfoFoot objectAtIndex:1];

    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值