使用ZXing BarcodeScanner Crossplatform Library我创建了下面的代码来扫描将返回扫描文本结果的条形码。
async static public Task<String> Scan()
{
var scanner = new MobileBarcodeScanner
{
TopText = "Hold the camera up to the barcode\nAbout 6 inches away",
BottomText = "Wait for the barcode to automatically scan!"
};
try
{
//This will start scanning
ZXing.Result result = await scanner.Scan();
string output = result.Text;
scanner.Cancel();
return output;
}
catch (Exception)
{
scanner.Cancel();
return null;
}
}
在Android上运行良好。 但是在iOS中,它会在处理时抛出错误,如下所示。
Unhandled Exception:
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'ZXingScannerViewController'. occurred
在iOS中点击scanner.Cancel()
时会发生这种情况。
任何解决方案为什么在iOS中会发生这种情况。
答案 0 :(得分:0)
您无需手动拨打scanner.Cancel()
。请参阅official usage
MobileBarcodeScanner
已被处理掉,因此如果再次调用它,应用程序将崩溃。