参考:
Barcode Scanning Made Easy with ZXing.Net Mobile - Xamarin Blog (microsoft.com)
使用提前说明:
我使用的是模拟器(夜神)进行调试;
调用摄像头的方式设置成了截图调用;
条形码随便网上找的,条形码内容为“211314”
1、引用包
2、MainPage界面
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="App1.MainPage">
<StackLayout VerticalOptions="Center">
<Button Text="点击扫码" Clicked="Button_Clicked" Padding="10" />
<StackLayout Orientation="Horizontal" >
<Label>扫码内容:</Label>
<Label x:Name="content"></Label>
</StackLayout>
</StackLayout>
</ContentPage>
using System;
using Xamarin.Forms;
using ZXing.Net.Mobile.Forms;
namespace App1
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
// 点击扫码
private async void Button_Clicked(object sender, EventArgs e)
{
// 这个是ZXing.Net.Mobile.Forms包中自带的界面;扫一扫的那个界面
var scanPage = new ZXingScannerPage();
// ZXingScannerPage界面中自带的一个回调方法
// 当识别到条码或二维码内容后执行;
// result:扫码返回的结果
scanPage.OnScanResult += (result) =>
{
// 在主线程执行
Device.BeginInvokeOnMainThread(async () =>
{
await Navigation.PopModalAsync(); //关闭扫码界面
await DisplayAlert("条码内容", result.Text, "确定");
content.Text = result.Text;// 给调用扫码的窗体赋值
});
};
await Navigation.PushModalAsync(scanPage);// 打开扫码界面
}
}
}
3、效果
扫码界面
扫描二维码