Scanner

Bifrost Technology

AuthorBifrost TechnologyPlugin Type1st Party PluginPrice$49Versionv1.0.3LicenseProprietary
NativePHP^3.0iOS13.0+Android21+

QR code and barcode scanner for NativePHP Mobile — native camera-based scanning with multiple format support and continuous scanning mode.

Features

  • Cross-platform scanning via native camera (AVFoundation / ML Kit)
  • Format support: qr, ean13, ean8, code128, code39, upca, upce, all
  • Continuous scanning mode (multiple scans per session)
  • Customizable prompt text shown in the scanner overlay
  • Session IDs for managing multiple concurrent scan contexts
  • PHP/Livewire and JavaScript/Vue/React support

Installation

Requires Composer credentials for the NativePHP plugin repository.

composer config repositories.nativephp-plugins composer https://plugins.nativephp.com
composer config http-basic.plugins.nativephp.com your@email.com your-license-key
php artisan vendor:publish --tag=nativephp-plugins-provider
composer require nativephp/mobile-scanner
php artisan native:plugin:register nativephp/mobile-scanner

PHP Usage

use NativePHP\MobileScanner\Facades\Scanner;

// Scan a QR code
Scanner::scan(
    formats: ['qr'],
    prompt: 'Scan a QR code to continue.',
    session: 'checkout',
    continuous: false,
);

// Multi-format continuous scan
Scanner::scan(
    formats: ['qr', 'ean13', 'code128'],
    prompt: 'Point at a barcode.',
    continuous: true,
);

// Stop continuous scanning
Scanner::stop();

Livewire Usage

use Native\Mobile\Attributes\OnNative;
use NativePHP\MobileScanner\Events\CodeScanned;

#[OnNative(CodeScanned::class)]
public function onCodeScanned(string $data, string $format, ?string $session): void
{
    if ($session === 'checkout') {
        $this->processBarcode($data);
    }
}

Compatibility

Platform Minimum Version
NativePHP ^3.0
iOS 13.0+
Android API 21+ (ML Kit), API 26+

Events

CodeScanned

Fires when a barcode is successfully decoded.

Field Type Description
data string The decoded barcode value
format string Format detected (e.g. qr, ean13)
session string|null Session ID if provided