qrcode_reading 1.0.2 copy "qrcode_reading: ^1.0.2" to clipboard
qrcode_reading: ^1.0.2 copied to clipboard

A Flutter plugin for scanning QR codes using the device camera. It provides customizable overlay and loading widgets, error handling, flashlight control, and the ability to pause and resume scanning.

QRCode Reading Plugin #

A Flutter plugin for scanning QR codes with ease. This plugin provides a seamless camera view with customizable widgets and functionalities to enhance the QR code scanning experience.

Features #

  • Overlay Widget: Display a custom function widget on top of the camera view to enhance the user interface.

  • Loading Widget: Show a widget while the camera is initializing.

  • On QR Code Read: Trigger a callback function when a QR code is successfully scanned. The scanned result is passed as a String.

  • Error Widget: Display a widget when an error occurs during QR code scanning.

  • Pause QR Code Reading: Pause and resume the QR code scanning process with the pauseReading property.

  • Flashlight Control: Control the flashlight with the isFlashLightOn property. Enable or disable the flashlight to improve scanning in low-light environments.

    Exemplo de imagem

Installation #

  1. Add Dependencies

    Add the following dependencies to your pubspec.yaml file:

    dependencies:
      qrcode_reading: ^1.0.0
      permission_handler: ^10.2.0
    
  2. Install Packages

    Run the following command to install the packages:

    flutter pub get
    

Configuration #

Android #

  1. Update AndroidManifest.xml

    Add the following permissions inside the <manifest> tag:

    <uses-permission android:name="android.permission.CAMERA" />
       
    <application
        ...
        >
        <!-- Add this inside the <application> tag -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>
    
  2. Enable Camera Privacy

    Ensure that the camera feature is declared (optional but recommended):

    <uses-feature android:name="android.hardware.camera" android:required="false" />
    

iOS #

  1. Update Info.plist

    Add the following keys to your Info.plist file to request camera access:

    <key>NSCameraUsageDescription</key>
    <string>This app requires camera access to scan QR codes.</string>
    

Usage #

Import the plugin and the permission_handler package in your Dart file:

import 'package:qrcode_reading/qrcode_reading.dart';
import 'package:permission_handler/permission_handler.dart';

Example #

QRCodeReader(
  isFlashLightOn: false, // Initial state of the flashlight
  pauseReading: false, // Control to pause the QR code reading
  errorWidget: Text("An error occurred"), // Widget shown when an error occurs
  loadingWidget: CircularProgressIndicator(), // Widget shown while the camera is loading
  overlayWidget: (constraints) => MyCustomOverlay(), // Widget displayed on top of the camera view
  onRead: (result) {
    print("QR Code: $result");
  }, // Callback when a QR code is read
);

Handling Permissions #

Before using the QRCodeReader, ensure that you have requested and granted camera permissions using the permission_handler package:

Future<void> _requestCameraPermission() async {
  var status = await Permission.camera.status;
  if (!status.isGranted) {
    status = await Permission.camera.request();
    if (!status.isGranted) {
      // Handle the permission denial
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text('Camera permission is required to scan QR codes')),
      );
    }
  }
}

Call the _requestCameraPermission method before initializing the QRCodeReader.

Permissions #

This plugin requires camera access to function correctly. Ensure that you have handled the permissions as outlined in the Configuration section.

  • Android: Permissions are declared in AndroidManifest.xml.
  • iOS: Permissions are declared in Info.plist.

Contributing #

Contributions are welcome! Please ensure that you follow the existing code style and include tests for any new features or bug fixes.

4
likes
140
points
59
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for scanning QR codes using the device camera. It provides customizable overlay and loading widgets, error handling, flashlight control, and the ability to pause and resume scanning.

Repository (GitHub)
View/report issues

Documentation

Documentation
API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on qrcode_reading