푸터 콘텐츠로 바로가기
IRONQR 사용

.NET MAUI 사용하여 QR 코드 스캐너를 만드는 방법

모바일 애플리케이션이 정보를 빠르게 검색하기 위해 QR 코드를 활용하는 사례가 늘어나면서, 효율적이고 쉽게 통합할 수 있는 QR 코드 스캐너 및 바코드를 스캔할 수 있는 .NET MAUI 바코드 스캐너의 필요성이 증가하고 있습니다..NETMAUI (다중 플랫폼 앱 UI)는 iOS, Android, macOS, Windows 전반에 걸쳐 애플리케이션을 구축할 수 있는 통합 환경을 제공하는 Microsoft의 크로스 플랫폼 프레임워크입니다. .NET MAUI 애플리케이션에서 QR 코드를 스캔할 때 개발자는 프로세스를 관리할 직관적이고 강력한 라이브러리가 필요합니다.

IronQR은 개발자가 QR 코드를 빠르게 생성하고 디코딩할 수 있도록 하는 인기 있는 라이브러리입니다. 이 문서는IronQR과 .NET MAUI를 통합하여 여러 플랫폼에서 원활하게 작동할 수 있는 QR/바코드 스캐너를 구축하는 과정을 안내합니다.

IronQR을 사용하여 QR 바코드 스캐닝 구현 방법

  1. .NET MAUI 프로젝트를 생성합니다.
  2. IronQR NuGet 패키지를 설치합니다.
  3. 카메라 및 파일 저장소에 대한 권한을 설정합니다.
  4. QR 코드 스캐너를 구현합니다.

.NET MAUI 모바일 앱을 위한 IronQR 소개

IronQR은 QR 코드 생성 및 디코딩을 .NET 애플리케이션(예: QR 및 바코드 스캐닝 기능 for .NET MAUI 모바일 앱 포함)에서 간소화하는 강력하고 사용하기 쉬운 라이브러리입니다. iOS, Android, macOS, Windows와 같은 플랫폼 전반에 걸쳐 QR 코드 및 바코드 스캐닝 기능을 통합하기 위한 빠르고 신뢰할 수 있는 솔루션을 제공합니다. 이는 크로스 플랫폼 모바일 앱 구축에 필수적입니다.

.NET MAUI 모바일 앱을 위한 IronQR의 기능

  • 크로스 플랫폼 지원: MAUI 애플리케이션 안에서 iOS, Android, macOS, Windows 플랫폼에서 원활하게 작동합니다.
  • QR 코드 스캐닝: 다양한 QR 코드 유형(URL, 텍스트, 연락처 정보 등)을 효율적으로 디코딩합니다. 또한 여러 바코드를 읽는 효율적인 바코드 감지 알고리즘을 지원합니다.
  • QR 코드 생성: URL, 텍스트 등과 같은 데이터에서 쉽게 QR 코드를 생성할 수 있습니다.
  • 카메라 권한 처리: 카메라 권한 요청을 자동으로 처리하여 스캐닝 프로세스를 간소화합니다.
  • 고성능: 최소한의 리소스를 사용하여 빠르고 신뢰할 수 있는 QR 코드 스캐닝 및 생성이 가능합니다.
  • 맞춤 설정 가능: 스캐닝 매개 변수와 QR 코드 외관에 대한 설정 옵션을 제공합니다.
  • 쉬운 통합: .NET MAUI 앱에 QR 코드 스캐닝 및 생성을 추가하는 데 필요한 간단한 API 및 최소한의 설정만 요구됩니다.
  • 오류 처리: 자세한 오류 메시지와 문제 해결을 제공하여 다양한 시나리오에서 원활한 기능을 보장합니다.
  • 외부 종속성 없음: IronQR은 독립적으로 작동하여 ZXing 바코드 스캐너와 달리 서드 파티 라이브러리 또는 복잡한 구성의 필요성을 줄입니다.
  • 다중 형식 지원: 여러 QR 코드 형식을 지원하여 실제로 사용되는 다양한 QR 코드와의 호환성을 보장합니다.

사전 준비

구현을 진행하기 전 다음 사전 준비 사항이 충족되어야 합니다.

  1. Visual Studio 2022 이상이 설치되어 있습니다.
  2. .NET 6.0 SDK 이상 (이전 버전에는 .NET MAUI가 구축되어 있음).
  3. QR 코드 스캐닝 및 바코드 감지를 위한 IronQR NuGet 패키지.
  4. .NET MAUI 앱 (이미 없는 경우 Visual Studio에서 새로운 MAUI 앱을 생성할 수 있습니다).

1단계: .NET MAUI 프로젝트 생성

시작하려면 간단한 .NET MAUI 프로젝트를 생성하겠습니다.

  1. Visual Studio를 열고 새 프로젝트 생성을 클릭합니다.
  2. .NET MAUI 앱 템플릿을 선택합니다.

새 프로젝트

  1. 프로젝트 이름(예: MauiQRCodeScanner), 위치를 선택하고 다음을 클릭합니다.

프로젝트 구성

필요한 .NET 버전을 선택하고 생성을 클릭합니다.

대상 프레임워크

2단계: IronQR NuGet Install-Package

IronQR은 QR 코드 생성 및 스캔 기능을 제공하는 서드파티 라이브러리입니다. IronQR을 설치하려면 NuGet을 통해 추가해야 합니다:

  1. Visual Studio에서 솔루션 탐색기에서 종속성을 오른쪽 클릭합니다.
  2. NuGet 패키지 관리를 클릭합니다.
  3. 찾아보기 탭에서 IronQR을 검색하고 관련 패키지 (일반적으로 IronQR 또는 MAUI를 위한 IronQr.Maui)를 찾아 설치를 클릭합니다.
  4. 모든 라이센스를 수락하고 라이브러리가 설치되었는지 확인합니다.

IronQR

3단계: 카메라 및 파일 저장소에 대한 권한 설정

애플리케이션이 QR 코드를 스캔하려면 모바일 플랫폼(iOS 및 Android)에서 카메라 권한을 요청해야 합니다. 다음과 같이 권한을 추가할 수 있습니다.

Android

AndroidManifest.xml 파일에서 카메라 권한을 추가하십시오:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
XML

iOS

Info.plist 파일에서 카메라 사용 설명을 추가하십시오:

<key>NSCameraUsageDescription</key>
<string>We need access to your camera to scan QR codes</string>
<key>NSCameraUsageDescription</key>
<string>We need access to your camera to scan QR codes</string>
XML

4단계: QR 코드 스캐너 구현

이제 MAUI 바코드 스캐너 앱에서 QR 스캐너에 대한 간단한 UI를 만듭니다. 버튼을 사용하여 스캔 프로세스를 트리거하고, 레이블을 사용하여 스캔된 QR 코드 텍스트를 표시합니다.

XML 네임스페이스의 MainPage.xaml 파일을 편집하십시오.

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Class="MauiQRCodeScanner.MainPage">

    <StackLayout Padding="20" VerticalOptions="Center">
        <Button x:Name="scanButton" Text="Scan QR Code" Clicked="OnScanButtonClicked" />
        <Label x:Name="resultLabel" Text="Scan Result will appear here" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
    </StackLayout>
</ContentPage>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Class="MauiQRCodeScanner.MainPage">

    <StackLayout Padding="20" VerticalOptions="Center">
        <Button x:Name="scanButton" Text="Scan QR Code" Clicked="OnScanButtonClicked" />
        <Label x:Name="resultLabel" Text="Scan Result will appear here" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
    </StackLayout>
</ContentPage>
XML

이제, MainPage.xaml.cs에서 카메라 권한과 QR 코드 스캔 로직을 처리하게 됩니다. 이렇게 구현할 수 있습니다:

using IronQrCode;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Essentials;

namespace MauiQRCodeScanner
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            License.LicenseKey = "Your key";  // Add your IronQR license key here
            InitializeComponent();
        }

        // OnScanButtonClicked method with object sender as input
        private async void OnScanButtonClicked(object sender, EventArgs e)
        {
            // Check for camera permission
            var status = await Permissions.RequestAsync<Permissions.Camera>();
            if (status != PermissionStatus.Granted)
            {
                await DisplayAlert("Permission Denied", "Cannot scan QR codes without camera permission", "OK");
                return;
            }

            // Start scanning QR codes
            try
            {
                var images = await FilePicker.Default.PickAsync(new PickOptions
                {
                    PickerTitle = "Pick image",
                    FileTypes = FilePickerFileType.Images
                });
                var imageSource = images.FullPath.ToString();

                var inputBmp = AnyBitmap.FromFile(imageSource);
                // Load the asset into QrImageInput
                QrImageInput imageInput = new QrImageInput(inputBmp);

                // Create a QR Reader object
                QrReader reader = new QrReader();

                // Read the input and get all embedded QR Codes
                IEnumerable<QrResult> results = reader.Read(imageInput);

                if (results.Any())
                {
                    resultLabel.Text = "Scanned Text: " + results.First().Value; 
        // Display the result
                }
                else
                {
                    resultLabel.Text = "No QR code detected";
                }
        }
        catch (Exception ex)
        {
            resultLabel.Text = "Error: " + ex.Message;
        }
        }
    }
}
using IronQrCode;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Essentials;

namespace MauiQRCodeScanner
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            License.LicenseKey = "Your key";  // Add your IronQR license key here
            InitializeComponent();
        }

        // OnScanButtonClicked method with object sender as input
        private async void OnScanButtonClicked(object sender, EventArgs e)
        {
            // Check for camera permission
            var status = await Permissions.RequestAsync<Permissions.Camera>();
            if (status != PermissionStatus.Granted)
            {
                await DisplayAlert("Permission Denied", "Cannot scan QR codes without camera permission", "OK");
                return;
            }

            // Start scanning QR codes
            try
            {
                var images = await FilePicker.Default.PickAsync(new PickOptions
                {
                    PickerTitle = "Pick image",
                    FileTypes = FilePickerFileType.Images
                });
                var imageSource = images.FullPath.ToString();

                var inputBmp = AnyBitmap.FromFile(imageSource);
                // Load the asset into QrImageInput
                QrImageInput imageInput = new QrImageInput(inputBmp);

                // Create a QR Reader object
                QrReader reader = new QrReader();

                // Read the input and get all embedded QR Codes
                IEnumerable<QrResult> results = reader.Read(imageInput);

                if (results.Any())
                {
                    resultLabel.Text = "Scanned Text: " + results.First().Value; 
        // Display the result
                }
                else
                {
                    resultLabel.Text = "No QR code detected";
                }
        }
        catch (Exception ex)
        {
            resultLabel.Text = "Error: " + ex.Message;
        }
        }
    }
}
$vbLabelText   $csharpLabel

코드 설명

  • 권한: 우리는 Permissions.RequestAsync<Permissions.Camera>()을 사용하여 카메라 권한을 요청합니다. 권한이 거부되면 사용자에게 경고가 표시됩니다.
  • IronQR 스캐너: IronQR 라이브러리 객체와 메서드를 사용하여 QR 코드를 스캔합니다. QrReader.Read() 메서드는 QR 코드를 디코드하려고 시도하며 결과는 레이블에 표시됩니다.

QR 코드를 입력하세요

QR 코드 입력

출력

QR 코드 출력

필요한 QR 코드를 선택하거나 카메라 피드에서 캡처합니다.

QR 코드 선택

결과는 아래와 같이 UI에 표시됩니다.

QR 코드 UI 출력

IronQR 라이센스 (체험판 가능)

IronQR은 모바일 앱 코드에서 라이센스 키와 함께 작동합니다. 개발자는 라이센스 페이지에서 체험판 라이센스를 쉽게 얻을 수 있습니다. IronQR 라이브러리를 사용하기 전에 다음과 같이 코드에 라이센스를 배치하십시오.

License.LicenseKey = "Your License";
License.LicenseKey = "Your License";
$vbLabelText   $csharpLabel

결론

이 기사에서는 IronQR를 사용하여 .NET MAUI 애플리케이션에서 QR 코드 스캐너를 구축하는 프로세스를 안내했습니다. .NET MAUI 앱을 설정하고 IronQR 패키지를 설치한 다음 UI와 스캔 로직을 구현했습니다. IronQR은 .NET MAUI 앱에서 QR 코드 스캔을 매우 간단하고 효과적으로 만듭니다.

IronQR 라이브러리는 크로스 플랫폼으로 설계되어 .NET MAUI로 구축된 애플리케이션이 스마트폰, 태블릿 또는 데스크톱 시스템 등 모든 대상 디바이스에서 일관된 QR 코드 기능에 액세스할 수 있도록 보장합니다. IronQR은 또한 자동 카메라 권한 처리와 같은 기능을 지원하여 수동으로 권한을 관리하는 번거로움 없이 QR 코드 스캔을 통합하기 쉽게 만들어줍니다.

요컨대, IronQR for .NET MAUI는 개발자들이 모바일 앱에서 QR 코드 스캔 및 생성 기능을 신속하게 구현할 수 있게 하며, 개발을 간소화하고 모든 플랫폼에서 사용자의 경험을 개선시킵니다.

자주 묻는 질문

.NET MAUI 애플리케이션에 QR 코드 스캐너를 통합하려면 어떻게 해야 하나요?

.NET MAUI 앱에 QR 코드 스캐너를 통합하려면 NuGet 통해 IronQR 라이브러리를 설치하고 QrReader.Read() 사용하여 QR 코드를 디코딩하세요.

QR 코드 스캔 for .NET MAUI 프로젝트를 생성하는 단계는 무엇인가요?

먼저 Visual Studio를 열고 .NET MAUI 앱 템플릿을 사용하여 새 프로젝트를 생성한 다음 필요한 .NET 버전을 선택합니다. 그런 다음 QR 스캔 기능을 구현하기 위해 IronQR 라이브러리를 설치합니다.

.NET MAUI 앱에서 QR 코드 스캔에 필수적인 권한은 무엇입니까?

QR 코드 스캔에는 카메라 권한이 필요합니다. Android에서는 AndroidManifest.xml 파일에 필요한 권한을 추가하고, iOS에서는 Info.plist 파일에 카메라 사용 설명을 추가하세요.

.NET MAUI 앱에서 카메라 권한을 관리하는 방법은 무엇인가요?

카메라 권한을 요청하려면 Permissions.RequestAsync() 를 사용하세요. 권한이 거부되면 사용자에게 알리는 경고 메시지를 표시하여 처리하세요.

QR 코드 스캔에 IronQR 라이브러리를 사용하면 어떤 이점이 있나요?

IronQR 크로스 플랫폼 지원, 고성능, 사용자 정의 설정, 자동 카메라 권한 처리 및 다양한 형식 지원을 제공하므로 .NET MAUI 앱에 이상적입니다.

.NET MAUI 앱에서 QR 코드 스캔 문제를 어떻게 해결할 수 있나요?

IronQR 라이브러리가 올바르게 설치되었는지, 카메라 권한이 부여되었는지, 기기 카메라가 정상적으로 작동하는지 확인하십시오. try-catch 블록을 사용하여 코드에 오류가 있는지 확인하십시오.

.NET MAUI 및 QR 스캐닝 개발을 시작하려면 무엇이 필요합니까?

QR 코드 스캔 및 바코드 감지를 위해서는 Visual Studio 2022 이상, .NET 6.0 SDK 이상, 그리고 IronQR NuGet 패키지가 필요합니다.

QR 코드 라이브러리의 평가판 라이선스는 어떻게 얻을 수 있나요?

IronQR 라이선스 페이지를 방문하여 평가판 라이선스 키를 받으세요. IronQR 기능을 사용하기 전에 코드에 라이선스 키를 삽입하십시오.

IronQR 라이브러리는 QR 코드 스캔에 어떤 형식을 지원하나요?

IronQR 다양한 QR 코드 및 바코드 형식을 지원하여 여러 애플리케이션과 플랫폼에서 사용할 수 있도록 보장합니다.

.NET 애플리케이션에서 QR 코드를 생성하는 방법은 무엇인가요?

IronQR 라이브러리의 메서드를 사용하여 QR 코드를 효율적으로 생성하고, 애플리케이션 요구 사항에 따라 설정을 사용자 지정할 수 있습니다.

조르디 바르디아
소프트웨어 엔지니어
조르디는 Iron Software에서 일하지 않을 때는 Python, C#, C++에 가장 능숙하며 게임 프로그래밍을 합니다. 제품 테스트, 제품 개발 및 연구를 담당하며 지속적인 제품 개선에 크게 기여하고 있습니다. 다양한 경험은 그에게 끊임없는 도전과 흥미를 제공하며, Iron Software에서 일하는 가장 큰 장점 중 하나라고 합니다. 조르디는 플로리다주 마이애미에서 자랐으며 플로리다 대학교에서 컴퓨터 과학과 통계학을 전공했습니다.

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me