Skip to main content
This feature works with any app, regardless of whether it uses Apple’s built-in scanning or a third-party library like ZXing or Google ML Kit.

Examples

Inject a QR code:
Inject a barcode:

When to use

  • Your app scans QR codes to trigger navigation, deep links, or actions.
  • Your app scans barcodes for product lookups, ticketing, or payments.
  • You need to test scanning flows without a physical code or camera setup.
  • You need to run the same scanning scenario repeatedly with consistent results.

Supported formats

2D Codes:
  • QR Code (org.iso.QRCode)
  • Aztec Code (org.iso.Aztec)
  • PDF417 (org.iso.PDF417)
  • Data Matrix (org.iso.DataMatrix)
  • Micro QR Code (org.iso.MicroQRCode)
1D Barcodes:
  • EAN-13/EAN-8 (org.gs1.EAN)
  • UPC-A/UPC-E (org.gs1.UPC)
  • Code 128 (org.gs1.Code128)
  • Code 39 (org.gs1.Code39)
  • Code 93 (org.gs1.Code93)
  • ITF-14 (org.gs1.ITF14)
  • Interleaved 2 of 5 (org.gs1.Interleaved2of5)
  • Codabar (org.gs1.Codabar)

Advanced: Multiple objects

Some apps expect the camera to detect multiple codes simultaneously. To inject multiple detections in a single call:

Advanced: Custom bounds and corners

Some apps use the position of the detected code in the view. To include position data:

Advanced: Raw binary data

To include raw binary data alongside the decoded value:

Default values

If not specified, the following defaults apply:
  • type: org.iso.QRCode
  • bounds: { x: 0.38, y: 0.27, width: 0.32, height: 0.57 }
  • corners: Calculated automatically from bounds
  • rawValue: UTF-8 encoding of the value string

Full sample test

Last modified on May 20, 2026