QRコードスキャナーのために.NET MAUIを使用する方法
QRコードを活用したモバイルアプリケーションの普及に伴い、効率的で統合しやすいQRコードスキャナーと、バーコードをスキャンするための.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 コードの外観をカスタマイズするオプションを提供します。 -簡単な統合: .NET MAUI アプリに QR コードのスキャンと生成を追加するために必要なのは、シンプルな API と最小限のセットアップだけです。 -エラー処理:詳細なエラー メッセージとトラブルシューティングを提供し、さまざまなシナリオでスムーズな機能を保証します。 -外部依存関係なし: 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コードのテキストを表示するためのラベルを使用します。
MainPage.xamlファイルをXML名前空間で編集。
<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;
}
}
}
}コードの説明
-権限: Permissions.RequestAsync<Permissions.Camera> ()を使用してカメラの権限を要求しますPermissions.RequestAsync<Permissions.Camera> () 。 権限が拒否された場合、ユーザーにアラートが表示されます。
- IronQR スキャナー: QR コードをスキャンするには、IronQR ライブラリ オブジェクトとメソッドを使用します。
QrReader.Read()メソッドでQRコードのデコードを試み、その結果をラベルに表示。
入力QRコード

出力

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

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

IronQRライセンス (トライアル利用可能)
IronQRはモバイルアプリコードでライセンスキーとともに動作します。 開発者はライセンスページからトライアルライセンスを簡単に取得できます。 IronQRライブラリを使用する前に、そのコード内のどこかにライセンスを配置してください。
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<Permissions.Camera>()を使用します。拒否された場合はユーザーに通知するアラートを表示して処理します。
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コードを効率的に生成します。






