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: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)
- 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