2

我已成功包含来自 Github iOS Phonegap Plugins的 Phonegap Plugin Barcodescanner 。

扫描方法有效。我已经在没有自定义 XIB 文件的情况下对其进行了测试。它在 iPad 和 iPhone 上都显示了一个很好的覆盖。

window.plugins.barcodeScanner.scan(success, fail)

除了展示我按照说明一步一步操作的自定义 XIB

window.plugins.barcodeScanner.scan(success, fail, ["BarcodeOverlay"])

但我面临一个问题:我的自定义 XIB 在 iPad 或 iPhone 上看起来很奇怪。有谁知道插件如何使用标准 XIB 处理这个问题?

4

1 回答 1

2

仅供参考 - 通过自定义 CDVBarcodeScanner.mm 类、方法 buildOverlayFromXib 解决了它

- (UIView *)buildOverlayViewFromXib 
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
    // iPad-specific interface here
    self.alternateXib = @"BarcodeOverlay_iPad";
    [[NSBundle mainBundle] loadNibNamed:self.alternateXib owner:self options:NULL];
}
else if (IS_IPHONE_5) {
    self.alternateXib = @"BarcodeOverlay_iPhone5";
    [[NSBundle mainBundle] loadNibNamed:self.alternateXib owner:self options:NULL];
}
else
{
    // iPhone and iPod touch interface here
    self.alternateXib = @"BarcodeOverlay_iPhone";
    [[NSBundle mainBundle] loadNibNamed:self.alternateXib owner:self options:NULL];
}

if ( self.overlayView == nil )
{
    NSLog(@"%@", @"An error occurred loading the overlay xib.  It appears that the overlayView outlet is not set.");
    return nil;
}

return self.overlayView;        

}

于 2013-08-16T09:07:21.813 回答