Xamarinフォームバーコードスキャナーの実用的なソースが見つかりませんでした。 zxingライブラリを使用したXamarinフォームバーコードスキャナーの動作サンプルはありますか?
以下のコードを試すことができます。 ソリューション内のすべてのプロジェクトにzxingライブラリ/コンポーネントを追加します
public class Home : ContentPage
{
string message = "";
public Home()
{
//Intialize the button
Button btnScan = new Button
{
Text = "Start Scan",
BackgroundColor = Color.FromRgb(207, 197, 159),
TextColor = Color.White,
BorderRadius = 5,
TranslationY = 120
};
//Attach the click event
btnScan.Clicked += btnScan_Clicked;
this.Content = new StackLayout
{
BackgroundColor = Color.FromRgb(150, 172, 135),
Spacing = 10,
Padding = 25,
Children =
{
btnScan
}
};
}
async void btnScan_Clicked(object sender, EventArgs e)
{
var scanner = new MobileBarcodeScanner();
scanner.TopText = "Hold the camera up to the barcode\nAbout 6 inches away";
scanner.BottomText = "Wait for the barcode to automatically scan!";
//This will start scanning
ZXing.Result result = await scanner.Scan();
//Show the result returned.
HandleResult(result);
}
void HandleResult(ZXing.Result result)
{
var msg = "No Barcode!";
if (result != null)
{
msg = "Barcode: " + result.Text + " (" + result.BarcodeFormat + ")";
}
DisplayAlert("", msg, "Ok");
}
}
ZXing.Net.Mobile.Forms を使用できます。しかし、あなたは注意します。
ZXing.Net.Mobile.Formsの現在のバージョンは2.4.1です。このバージョンを使用しましたが、Xamarin.Forms.Androidプロジェクトでビルドに失敗しました。 =>クラッシュアプリ。
=>バージョン2.3.2を使用しました。それはうまく機能しています。
AndroidプロジェクトファイルMainActivity.csに、次のコードを追加します。
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
{
global::ZXing.Net.Mobile.Forms.Android.PermissionsHandler.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
ここ のチュートリアルコードが正しくないようです
スキャナーを呼び出す:
private async void BtnScan_OnClicked(object sender, EventArgs e)
{
ZXingScannerPage scanPage = new ZXingScannerPage();
scanPage.OnScanResult += (result) =>
{
scanPage.IsScanning = false;
Device.BeginInvokeOnMainThread(() =>
{
Navigation.PopAsync();
EtInputCode.Text = "Code: " + result.Text;
});
};
await Navigation.PushAsync(scanPage);
}
それはかなり簡単です、
var scanner = new MobileBarcodeScanner();
var result = await scanner.Scan();
if(result == null)
return;
results.Text = result.Text;
これは、XZingライブラリを使用してバーとQRコードをスキャンするXamarinFormsの作業サンプルです。
ZXing.Net.Mobilenugetを使用できます。ライブラリは、次のURLのgithubで入手できます https://github.com/Redth/ZXing.Net.Mobile 。最初のページに使用法のドキュメントがあります。しかし、私はそれを次のように3つのステップで簡単に説明します:
プロジェクトにNugetを追加します
ContentPageを作成します。 xaml側で、ボタンまたは画像ボタンを作成します。次の例では、次のような画像ボタンのように使用しています。
_<ImageButton x:Name="ScanButton" Source="scannimage.png" />
_
コードバインドで、コンストラクターまたはOnAppearing()
メソッドに次のコードを配置します。
_ScanButton.Clicked += async (sender, e) =>
{
var scanner = new ZXing.Mobile.MobileBarcodeScanner();
var result = await scanner.Scan();
if (result != null)
{
await DisplayAlert("Code barre", "Scanned Barcode: " + result.Text, "Ok");
}
};
_