QRコードスキャナーのために.NET MAUIを使用する方法
QRコードを活用したモバイルアプリケーションの普及に伴い、効率的で統合しやすいQRコードスキャナーと、バーコードをスキャンするため for .NET MAUIバーコードスキャナーの必要性が高まっています。.NET MAUI(マルチプラットフォームアプリUI)、Microsoftのクロスプラットフォームフレームワークにより、iOS、Android、macOS、およびWindows向けのアプリケーションを構築するための統一された環境が提供されます。 .NET MAUIアプリケーションでQRコードをスキャンする際、開発者にはプロセスを管理する直感的で強力なライブラリが必要です。
IronQRは、開発者がQRコードを迅速かつ正確に生成およびデコードできる人気のライブラリです。 この記事では、IronQRを.NET MAUIと統合し、複数のプラットフォームでシームレスに動作するQR/Barcodeスキャナーを構築する方法を説明します。
IronQRを使用したQR Barcodeスキャニングの実装方法
- .NET MAUIプロジェクトを作成します。
- IronQR NuGetパッケージをインストールします。
- カメラとファイルストレージの権限を設定します。
- QRコードスキャナーを実装します。
IronQR for .NET MAUI Mobile Appsの概要
IronQRは強力で使いやすいライブラリで.NETアプリケーションにおけるQRコードの生成とデコードを簡素化し、QRとBarcodeスキャニング機能を含む.NET MAUIモバイルアプリに貢献します。 これは、iOS、Android、macOS、そしてWindowsといったプラットフォームにわたるQRコードおよびBarcodeスキャニング機能の統合に迅速かつ信頼性の高いソリューションを提供します。これはクロスプラットフォームのモバイルアプリ構築に不可欠です。
IronQR for .NET MAUI Mobile Appsの特徴
-クロスプラットフォーム対応: MAUIアプリ内で、iOS、Android、macOS、Windowsの各プラットフォーム間でシームレスに動作します。
- QRコードスキャン:様々な種類のQRコード(URL、テキスト、連絡先情報など)を効率的にデコードします。 効率的なバーコード検出アルゴリズムで複数のバーコードも対応。
- QRコード生成: URL、テキストなどのデータから簡単にQRコードを生成できます。 -カメラ権限処理:カメラの権限要求を自動的に処理し、スキャンプロセスを簡素化します。 -高性能:最小限のリソース使用量で、高速かつ信頼性の高いQRコードのスキャンと生成を実現します。 -カスタマイズ可能な設定:スキャンパラメータとQRコードの表示形式をカスタマイズできます。 -簡単な統合:シンプルなAPIと最小限の設定で、 .NET MAUIアプリにQRコードのスキャンと生成機能を追加できます。 -エラー処理:詳細なエラーメッセージとトラブルシューティングを提供し、さまざまなシナリオでスムーズな動作を保証します。 -外部依存関係なし: IronQRは独立して動作するため、ZXingバーコードスキャナとは異なり、サードパーティライブラリや複雑な設定の必要性が軽減されます。 -マルチフォーマット対応:複数のQRコードフォーマットに対応し、現実世界で使用されている幅広いQRコードとの互換性を確保します。
前提条件
実装を進める前に、次の前提条件を確認してください:
- Visual Studio 2022以降 をインストール。
- .NET 6.0 SDK以降 (.NET MAUIは.NET 6およびそれ以降のバージョンをベースに構築されているため)。
- IronQR NuGet Package QRコードスキャニングとバーコード検出のため。
- .NET MAUIアプリ (まだお持ちでない場合、Visual Studioで新しいMAUIアプリを作成できます)。
ステップ1: .NET MAUIプロジェクトを作成する
まず、シンプルな.NET MAUIプロジェクトを作成しましょう。
- Visual Studioを開き、Create a new projectをクリック。
-
.NET MAUI Appテンプレートを選択。

-
プロジェクト名を入力 (例: MauiQRCodeScanner)、場所を選択し次へ。

必要な.NETバージョンを選択し、作成をクリック。

ステップ2: IronQR NuGetパッケージをインストールする
IronQRはQRコード生成とスキャニング機能を提供するサードパーティライブラリです。 IronQRをインストールするには、NuGetを通じて追加する必要があります。
- Visual Studioで、Dependencies内を右クリック。
- Manage NuGet Packagesをクリック。
- BrowseタブでIronQRを検索し、関連するパッケージ (通常はIronQRまたはIronQr.Maui) をインストールクリック。
-
ライセンスを承諾し、ライブラリがインストールされていることを確認。

ステップ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" />
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>
ステップ4: QRコードスキャナーを実装する
では、MAUI Barcodeスキャナーアプリ内で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>
さて、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;
}
}
}
}
Imports IronQrCode
Imports Microsoft.Maui.Controls
Imports Microsoft.Maui.Essentials
Namespace MauiQRCodeScanner
Partial Public Class MainPage
Inherits ContentPage
Public Sub New()
License.LicenseKey = "Your key" ' Add your IronQR license key here
InitializeComponent()
End Sub
' OnScanButtonClicked method with object sender as input
Private Async Sub OnScanButtonClicked(ByVal sender As Object, ByVal e As EventArgs)
' Check for camera permission
Dim status = Await Permissions.RequestAsync(Of Permissions.Camera)()
If status <> PermissionStatus.Granted Then
Await DisplayAlert("Permission Denied", "Cannot scan QR codes without camera permission", "OK")
Return
End If
' Start scanning QR codes
Try
Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
.PickerTitle = "Pick image",
.FileTypes = FilePickerFileType.Images
})
Dim imageSource = images.FullPath.ToString()
Dim inputBmp = AnyBitmap.FromFile(imageSource)
' Load the asset into QrImageInput
Dim imageInput As New QrImageInput(inputBmp)
' Create a QR Reader object
Dim reader As New QrReader()
' Read the input and get all embedded QR Codes
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
If results.Any() Then
resultLabel.Text = "Scanned Text: " & results.First().Value
' Display the result
Else
resultLabel.Text = "No QR code detected"
End If
Catch ex As Exception
resultLabel.Text = "Error: " & ex.Message
End Try
End Sub
End Class
End Namespace
コードの説明
-権限:カメラの権限を Permissions.RequestAsync<Permissions.Camera>() を使用して要求します。 権限が拒否された場合、ユーザーにアラートが表示されます。
- IronQRスキャナ: IronQRライブラリのオブジェクトとメソッドを使用してQRコードをスキャンします。
QrReader.Read()メソッドは QR コードのデコードを試み、その結果がラベルに表示されます。
入力QRコード

出力

必要なQRコードを選択するか、カメラフィードからキャプチャ。

結果がUIに以下のように表示されます。

IronQRライセンス (トライアル利用可能)
IronQRはモバイルアプリコードでライセンスキーとともに動作します。 開発者はライセンスページからトライアルライセンスを簡単に取得できます。 IronQRライブラリを使用する前に、そのコード内のどこかにライセンスを配置してください。
License.LicenseKey = "Your License";
License.LicenseKey = "Your License";
License.LicenseKey = "Your License"
結論
この記事では、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コードスキャナを統合するにはどうすればよいですか?
QRコードスキャナを.NET MAUIアプリに統合するには、NuGetを介してIronQRライブラリをインストールし、QrReader.Read()を使用してQRコードをデコードします。
QRスキャニング用に.NET MAUIプロジェクトを作成する手順は何ですか?
Visual Studioを開き、.NET MAUI Appテンプレートを使用して新しいプロジェクトを作成し、必要な.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スキャニングで開発を始めるために何が必要ですか?
Visual Studio 2022以降、.NET 6.0 SDK以降、そしてQRコードスキャンとバーコード検出を促進するためのIronQR NuGetパッケージが必要です。
QRコードライブラリの試用ライセンスを取得するにはどうすればよいですか?
IronQRのライセンスページにアクセスして試用ライセンスキーを取得します。IronQRの機能を利用する前にコードにライセンスキーを挿入してください。
QRスキャニングにIronQRライブラリがサポートするフォーマットは何ですか?
IronQRは複数のQRコードおよびバーコードフォーマットをサポートしており、異なるアプリケーションやプラットフォーム間で使用できます。
.NETアプリケーションでQRコードを生成するにはどうすればいいですか?
IronQRライブラリのメソッドを使用して、アプリケーションのニーズに合わせて設定をカスタマイズしながらQRコードを効率的に生成します。



