ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
QRコードを活用して迅速に情報を取得するモバイルアプリケーションの普及に伴い、効率的で統合が簡単なQRコードスキャナーとバーコードをスキャンするための.NET MAUIバーコードスキャナーの需要が高まっています。.NETMAUI(マルチプラットフォームアプリUI)Microsoftのクロスプラットフォームフレームワークは、iOS、Android、macOS、Windowsですべての環境でアプリケーションを構築するための統一された環境を提供します。 .NET MAUIアプリケーションでQRコードをスキャンする際、開発者はプロセスを管理するための直感的で強力なライブラリが必要です。
IronQRは、開発者がQRコードを迅速、正確、かつ確実に生成およびデコードすることを可能にする人気のあるライブラリです。 この記事では、.NET MAUIと連携してIronQRを統合し、複数のプラットフォームでシームレスに動作するQR/バーコードスキャナーを構築する方法を説明します。
.NET MAUIプロジェクトを作成します。
IronQR NuGetパッケージをインストールします。
カメラとファイルストレージの権限を設定します。
IronQRは、QRおよびバーコードスキャン機能を備えた.NET MAUIモバイルアプリケーションを含む.NETアプリケーションで、QRコードの生成とデコードを簡素化する強力で使いやすいライブラリです。 それは、iOS、Android、macOS、Windowsといったプラットフォーム全体でQRコードおよびバーコードのスキャン機能を統合するための迅速で信頼性の高いソリューションを提供し、クロスプラットフォームのモバイルアプリを構築する際に不可欠です。
a. クロスプラットフォームサポート**: MAUIアプリ内で、iOS、Android、macOS、およびWindowsプラットフォーム間でシームレスに動作します。
b. QRコードのスキャン**: さまざまな種類のQRコードを効率的にデコードします(URL、テキスト、連絡先情報など。). また、効率的なバーコード検出アルゴリズムを用いた複数のバーコードの読み取りもサポートしています。
c. QRコード生成**: これは、URLやテキストなどのデータから簡単にQRコードを生成できるようにします。
d. カメラ許可の処理: 自動的にカメラの許可リクエストを処理し、スキャンプロセスを簡素化します。
e. 高性能: 最小限のリソース使用で高速かつ信頼性の高いQRコードのスキャンと生成。
f. カスタマイズ可能な設定: スキャンパラメーターとQRコード外観のカスタマイズオプションを提供します。
g. 容易な統合:QRコードのスキャンと生成をあなたの.NET MAUIアプリに追加するためのシンプルなAPIと最小限のセットアップが必要です。
h. エラーハンドリング:様々なシナリオでのスムーズな機能を保証する詳細なエラーメッセージとトラブルシューティングを提供します。
i. 外部依存なし: IronQRは独立して動作し、ZXingバーコードスキャナーとは異なり、サードパーティライブラリや複雑な設定を必要としません。
j. マルチフォーマット対応**: 現実世界で使用されている幅広いQRコードと互換性がある多くのQRコード形式をサポートします。
実装を進める前に、以下の前提条件を確認してください。
Visual Studio 2022以降がインストールされていること。
.NET 6.0 SDK またはそれ以降(.NET MAUIは.NET 6およびそれ以降のバージョンに基づいて構築されています).
QRコードのスキャンとバーコード検出用のIronQR NuGetパッケージ。
まず、シンプルな.NET MAUIプロジェクトを作成しましょう。
Visual Studioを開き、新しいプロジェクトの作成をクリックします。
.NET MAUI アプリテンプレートを選択します。
プロジェクトに名前を付ける(例:MauiQRCodeScanner)、場所を選択し、次へをクリックします。
必要な.NETバージョンを選択し、作成をクリックします。
IronQRは、QRコードの生成およびスキャン機能を提供するサードパーティライブラリです。 IronQRをインストールするには、NuGetを通じて追加する必要があります。
Visual Studio で、ソリューション エクスプローラーの依存関係を右クリックします。
「NuGet パッケージを管理」をクリックします。
[参照] タブでIronQRを検索し、該当するパッケージの [インストール] をクリックします。(通常、MAUI向けに特別に提供されている場合は、IronQRまたはIronQR.Mauiです。).
ライセンスをすべて承認し、ライブラリがインストールされることを確認してください。
QRコードをスキャンするために、モバイルプラットフォームでカメラの権限をリクエストする必要があります。(iOSおよびAndroid). 以下にどのようにして次の権限を追加するか説明します。 もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。
Android デバイス: AndroidManifest.xml ファイルにカメラの許可を追加します。
もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。 もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。
iOS: Info.plistファイルにカメラの使用説明を追加します。
もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。
では、MAUI Barcode Scannerアプリで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">
もちろんです!翻訳したいコンテンツを提供してください。それに従って正確な日本語訳を提供いたします。
次に、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";
InitializeComponent();
}
// OnScanButtonClicked method with object sender as input
private async void OnScanButtonClicked(object sender, EventArgs e)
{
// Check for camera permission for var barcode with clear and valid reason
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();
// barcodeImage.Source = imageSource;
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";
InitializeComponent();
}
// OnScanButtonClicked method with object sender as input
private async void OnScanButtonClicked(object sender, EventArgs e)
{
// Check for camera permission for var barcode with clear and valid reason
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();
// barcodeImage.Source = imageSource;
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"
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 for var barcode with clear and valid reason
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()
' barcodeImage.Source = imageSource;
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
必要なQRコードを選択するか、カメラフィードからキャプチャします。
結果は以下のようにUIに表示されます。
権限: Permissions.RequestAsync
IronQR Scanner: The IronQrCode.Scanner()クラスはQRコードをスキャンするために使用されます。 ScanAsync()メソッドがスキャンをトリガーし、結果はscanResultに保存されます。 スキャンされたQRコードのテキストは、resultLabelに表示されます。
QRコードスキャナーのテスト: これで、QRコードスキャナーをテストする準備が整いました。 アプリケーションが実行されると、「Scan QR Code」ボタンをクリックすることでスキャンプロセスが開始されます。 有効なQRコードがカメラの前にある場合、それがデコードされて画面に表示されます。
IronQRは、モバイルアプリのコード内にあるライセンスキーで動作します。 開発者は簡単にトライアルライセンスを取得できます。ライセンスページ IronQRライブラリを使用する前に、以下のようにコード内のどこかにライセンスを配置してください。
License.LicenseKey = "Your License";
License.LicenseKey = "Your License";
License.LicenseKey = "Your License"
この記事では、.NET MAUIアプリケーションでIronQRを使用してQRコードスキャナーを構築するプロセスについて説明しました。 .NET MAUIアプリを設定し、IronQRパッケージをインストールし、UIとスキャンロジックを実装することから始めました。 IronQRは、.NET MAUIアプリでのQRコードの読み取りを非常に簡単かつ効果的にします。
IronQRライブラリはクロスプラットフォーム向けに設計されており、.NET MAUIで構築されたアプリが、スマートフォン、タブレット、デスクトップシステムなど、すべてのターゲットデバイスで一貫してQRコード機能にアクセスできるようにしています。 IronQRは、自動カメラ許可処理などの機能にも対応しており、手動での許可管理の手間をかけずにQRコードのスキャンを統合することが容易です。
要するに、IronQR for .NET MAUIは、開発者がモバイルアプリにQRコードのスキャンおよび生成機能を迅速に実装できるようにし、すべてのプラットフォームでの開発を効率化し、ユーザーエクスペリエンスを向上させます。
10 の .NET API 製品 オフィス文書用