我用cordova包了一个外壳,嵌套网页,需要用到二维码扫描。在网上找到了插件,并且已经可以使用,现在客户非的横屏扫描;之前一直弄android,对ios不太清楚怎么弄;也看不懂,大家帮忙看看;下面代码是调用扫描的方法,主要想知道是不是调用了那个类库,或者类似andorid里面的jar包;在哪里可以修改屏幕的方向
[align=center][code=objc]//--------------------------------------------------------------------------
- (void)scan:(CDVInvokedUrlCommand*)command {
    CDVbcsProcessor* processor;
    NSString*       callback;
    NSString*       capabilityError;
    
    callback = command.callbackId;
    
    // We allow the user to define an alternate xib file for loading the overlay. 
    NSString *overlayXib = nil;
    if ( [command.arguments count] >= 1 )
    {
        overlayXib = [command.arguments objectAtIndex:0];
    }
    
    
    capabilityError = [self isScanNotPossible];
    if (capabilityError) {
        [self returnError:capabilityError callback:callback];
        return;
    }
    
    processor = [[CDVbcsProcessor alloc]
                 initWithPlugin:self
                 callback:callback
                 parentViewController:self.viewController
                 alterateOverlayXib:overlayXib
                 ];
    [processor retain];
    [processor retain];
    [processor retain];
    // queue [processor scanBarcode] to run on the event loop
    [processor performSelector:@selector(scanBarcode) withObject:nil afterDelay:0];
}
[code]

解决方案 »

  1.   

    //--------------------------------------------------------------------------
    - (void)loadView {
        self.view = [[[UIView alloc] initWithFrame: self.processor.parentViewController.view.frame] autorelease];
        
        // setup capture preview layer
        AVCaptureVideoPreviewLayer* previewLayer = self.processor.previewLayer;
        previewLayer.frame = self.view.bounds;
        previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
        
        if ([previewLayer isOrientationSupported]) {
            [previewLayer setOrientation:AVCaptureVideoOrientationPortrait];
        }
        
        [self.view.layer insertSublayer:previewLayer below:[[self.view.layer sublayers] objectAtIndex:0]];
        
        [self.view addSubview:[self buildOverlayView]];
    }
      

  2.   

    方向的修改在ios8+ 和以下方式略有不同,如果你只需要修改整个APP的方向,直接在project settings里面配置就好了,运行时旋转方向需要project settings允许对应的方向,然后通过delegate去旋转