Xamarin Prism により、Android端末でバーコード(QRコード)読み込みを実装する方法を説明します。
バーコード読み取り用の画面で読み取りが完了した後、読み取りしたバーコードの値を前の画面に返すようにします。
Xamarin Prismでバーコード読み込みを実装するには、ZXingライブラリを使用することができます。
以下は、ZXingを使用したバーコード読み込みの実装例です。
実装手順
1. NuGetパッケージをインストール
まず、ZXingをプロジェクトに追加する必要があります。
NuGetパッケージマネージャーを使用して、以下のパッケージをインストールします。
- ZXing.Net.Mobile
- ZXing.Net.Mobile.Forms
2. AndroidのMainActivity.csにコード追加
次にAndroidのMainActivity.csにコードを追加します。
▼MainActivity.cs
3. AndroidのAndroidManifest.xmlにコード追加
次にAndroidのAndroidManifest.xmlにコードを追加します。
AndroidManifest.xmlは、Visual Studio であれば、Propertiesの直下に存在します。
▼AndroidManifest.xml
4. バーコード読み取り画面を実装
今回のサンプルでは、2つのページを作成します。
■MainPage
- ボタンを押すとバーコード読み取りするページ(ScannerView)に移動
- ScannerViewページで読み取ったバーコードの値を画面に表示
■ScannerView
- バーコード読み取り後、読み取ったバーコードの値をMainPageに返す
まずはMainPageの実装です。
▼MainPage.xml
▼MainPageViewModel.cs
次に、ScannerViewの実装です。
▼ScannerView.xaml
▼ScannerView.xaml.cs
ScanFinishedEventArgs は、View(xaml)に実装しているEventToCommandBehaviorで、
バーコード読み取り終了イベントをViewModelへバインドするために必要なクラスです。
ScanFinishedEventArgs を実装します。
▼ScanFinishedEventArgs .cs
最後に、ViewModelを実装します。
▼ScannerViewModel.cs
これらの手順で、バーコード読み取りした値を前のページに戻して表示する事ができます。
ScannerViewはコードビハインドに記述する必要がありますが、他はMVVMパターンになっていると思います。
参考リンク
【Xamarin.Forms】QRコードの読み取りをする方法
https://takataka430.hatenablog.com/entry/2019/03/21/184259
【Xamarin 002】QRコードライブラリ Zxing.Net.Mobile.Forms を Prism っぽく使ってみた
https://johnny06r.hatenablog.com/entry/2018/08/29/012710