Pārlūkot izejas kodu

1.修改iOS RAImage扫码。

Pen Li 7 gadi atpakaļ
vecāks
revīzija
4db6b4e1de
1 mainītis faili ar 58 papildinājumiem un 37 dzēšanām
  1. 58 37
      RA Image/RA Image/LoginSettingViewController.m

+ 58 - 37
RA Image/RA Image/LoginSettingViewController.m

@@ -8,6 +8,7 @@
 
 #import "LoginSettingViewController.h"
 #import "ScannerViewController.h"
+#import "RAQRCodeScannerViewController.h"
 
 
 
@@ -121,47 +122,33 @@
 - (void)scanItemClick:(UIBarButtonItem *)sender {
     
     __weak typeof(self) weakself = self;
-    ScannerViewController *scannerVC = [[UIStoryboard storyboardWithName:@"cam_scan" bundle:nil] instantiateViewControllerWithIdentifier:@"NewScannerViewController"];
-    scannerVC.returnCode = ^(NSString *code) {
-        // 扫描成功保存扫描值
-        if (code.length) {
-
-            if (weakself) {
-                __strong typeof(weakself) strongself = weakself;
-                
-                NSArray *dataArr = [code componentsSeparatedByString:@";"];
-                if (dataArr.count == 3) {
-                    NSString *name = [dataArr objectAtIndex:0];
-                    NSString *internalAddr = [dataArr objectAtIndex:2];
-//                    NSString *externalAddr = [dataArr objectAtIndex:2];
-                    
-                    strongself.nameTextField.text = name;
-                    strongself.internalTextField.text = internalAddr;
-//                    strongself.externalTextField.text = externalAddr;
-                }
-                else if (dataArr.count == 2) {
-                    NSString *name = [dataArr objectAtIndex:0];
-                    NSString *internalAddr = [dataArr objectAtIndex:1];
-                    //                    NSString *externalAddr = [dataArr objectAtIndex:2];
-                    
-                    strongself.nameTextField.text = name;
-                    strongself.internalTextField.text = internalAddr;
-                    //                    strongself.externalTextField.text = externalAddr;
-                }
-                else {
-                    [RAUtils alert_view:@"Wrong QR-CODE?" title:@"Can not setup server"];
-//                    strongself.nameTextField.text = nil;
-//                    strongself.internalTextField.text = [dataArr firstObject];
-//                    strongself.externalTextField.text = nil;
-                }
-                
-            }
-            
+//    ScannerViewController *scannerVC = [[UIStoryboard storyboardWithName:@"cam_scan" bundle:nil] instantiateViewControllerWithIdentifier:@"NewScannerViewController"];
+//    scannerVC.returnCode = ^(NSString *code) {
+//        // 扫描成功保存扫描值
+//        if (weakself) {
+//            __strong typeof(weakself) strongSelf = weakself;
+//            [strongSelf processScanResult:code];
+//        }
+//    };
+//    [self presentViewController:scannerVC animated:YES completion:nil];
+    
+    RAQRCodeScannerViewController *scannerVC = [RAQRCodeScannerViewController viewControllerFromStoryboard];
+    scannerVC.QRCodeViewControllerDidCompletion = ^(RAQRCodeScannerViewController *qrcodeViewController, NSString *value) {
+        
+        if (weakself) {
+            __strong typeof(weakself) strongSelf = weakself;
+            [strongSelf processScanResult:value];
         }
+        
+        [qrcodeViewController dismissViewControllerAnimated:YES completion:nil];
     };
-    [self presentViewController:scannerVC animated:YES completion:nil];
     
+    scannerVC.QRCodeViewControllerDidCanceled = ^(RAQRCodeScannerViewController *qrcodeViewController) {
+        
+        [qrcodeViewController dismissViewControllerAnimated:YES completion:nil];
+    };
     
+    [self presentViewController:scannerVC animated:YES completion:nil];
 }
 
 //- (IBAction)internalCheckBtnClick:(UIButton *)sender {
@@ -186,7 +173,41 @@
     return YES;
 }
 
+#pragma mark - Private
 
+- (void)processScanResult:(NSString *)result {
+    
+    if (result.length) {
+        
+        NSArray *dataArr = [result componentsSeparatedByString:@";"];
+        if (dataArr.count == 3) {
+            NSString *name = [dataArr objectAtIndex:0];
+            NSString *internalAddr = [dataArr objectAtIndex:2];
+            //                    NSString *externalAddr = [dataArr objectAtIndex:2];
+            
+            self.nameTextField.text = name;
+            self.internalTextField.text = internalAddr;
+            //                    strongself.externalTextField.text = externalAddr;
+        }
+        else if (dataArr.count == 2) {
+            NSString *name = [dataArr objectAtIndex:0];
+            NSString *internalAddr = [dataArr objectAtIndex:1];
+            //                    NSString *externalAddr = [dataArr objectAtIndex:2];
+            
+            self.nameTextField.text = name;
+            self.internalTextField.text = internalAddr;
+            //                    strongself.externalTextField.text = externalAddr;
+        }
+        else {
+            [RAUtils alert_view:@"Wrong QR-CODE?" title:@"Can not setup server"];
+            //                    strongself.nameTextField.text = nil;
+            //                    strongself.internalTextField.text = [dataArr firstObject];
+            //                    strongself.externalTextField.text = nil;
+        }
+        
+    }
+    
+}
 
 
 @end