我在 iOS 应用程序的 SPP(应用程序模式(中使用 SocketMobile 扫描仪 7Xi。我已经集成了scanapisdk SDK。
在扫描条形码或QR码时,下面的代表被称为:
- (void) onDecodedDataResult:(long)result device:(DeviceInfo *)device decodedData:(ISktScanDecodedData*)decodedData
{
NSString * scannedText = [NSString stringWithUTF8String:(const char *)[decodedData getData]];
}
在这里,我如何知道扫描是否发生在条形码或QR上?
我想检测是否扫描了条形码或 QR。
可能吗?
ISktScanDecodedData有两种方法,可用于确定条形码类型
-
getSymbologyID
- 返回一个 int -
getSymbologyName
- 返回一个字符串
我建议使用第一个,因为名称可能会更改。
- (void) onDecodedDataResult:(long)result device:(DeviceInfo *)device decodedData:(ISktScanDecodedData*)decodedData
{
NSString * scannedText = [NSString stringWithUTF8String:(const char *)[decodedData getData]];
int symbologyId = [decodedData getSymbologyID];
if (symbologyId == ISktScanSymbology.id.kSktScanSymbologyQRCode) {
// do something
} else if (symbologyId == /* INSERT "BARCODE" SYMBOLOGY ID HERE */ ) {
// do something else
}
}
如果"条形码"是指任何线性条形码(又称一维条形码(,则需要在代码中指定所有不同类型的线性条形码