C# Xamarin利用ZXing.Net.Mobile进行扫码的方法

以下是C# Xamarin利用ZXing.Net.Mobile进行扫码的方法的完整攻略:

1. ZXing.Net.Mobile的介绍

1.1 什么是ZXing.Net.Mobile

ZXing.Net.Mobile是一款基于ZXing的二维码扫描框架,支持多种平台,包括Xamarin.Android、Xamarin.iOS、Windows Phone、Windows 10、Windows Desktop等。这个框架基于Apache 2.0许可证发布。

1.2 ZXing.Net.Mobile的优势

ZXing.Net.Mobile库具有内置编码和解码支持,支持二维码、条码等的扫描和生成,并且还具有单一移植代码库的优势。

1.3 ZXing.Net.Mobile的核心功能

  • 可以通过默认设置扫描和解码二维码和条码。
  • 如果需要,可以通过提供不同的options以扫描和处理不同的条码类型。
  • 可以从给定的文件中解码条形码和二维码。
  • 可以根据options生成指定类型的二维码/条码。

2. ZXing.Net.Mobile的使用

2.1 安装ZXing.Net.Mobile库

可以直接通过NuGet进行安装,也可以手动下载安装。

安装过程中需要注意,如果是在Xamarin.Forms项目中使用,需要在每个平台上下载并安装ZXing.Net.Mobile,而不是将ZXing.Net.Mobile添加到PCL或共享项目中。

2.2 在Xamarin.Forms项目中使用ZXing.Net.Mobile

首先需要注册ZXing.Net.Mobile的依赖注入服务,然后创建一个ZXingView和一个ZXingScannerView。

代码示例1

public class App : Application
{
    public App()
    {    
        // 注册ZXing.Net.Mobile依赖
        DependencyService.Register<IScanner, Scanner>();

        // 创建一个ZXingView和一个ZXingScannerView,并定义ZXingView的内容
        var mainPage = new ContentPage();
        var stack = new StackLayout();
        var zxingView = new ZXingScannerView
        {
            HorizontalOptions = LayoutOptions.FillAndExpand,
            VerticalOptions = LayoutOptions.FillAndExpand
        };
        zxingView.OnScanResult += (result) =>
            Device.BeginInvokeOnMainThread(async () => {
                await DisplayAlert("Scanned Code", result.Text, "OK");
            });
        zxingView.IsScanning = true;
        stack.Children.Add(zxingView);
        mainPage.Content = stack;
        MainPage = mainPage;
    }
}

2.3 在Xamarin.Android项目中使用ZXing.Net.Mobile

在Xamarin.Android项目中,需要先添加ZXing.Net.Mobile.Android NuGet包。

代码示例2

using System;
using System.Collections.Generic;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Com.Google.Zxing;
using Com.Google.Zxing.Common;
using Com.Google.Zxing.Qrcode;
using Com.Google.Zxing.Qrcode.Decoder;
using Xamarin.Forms.Platform.Android;
using ZXing;
using ZXing.Mobile;
using ZXing.Net.Mobile.Android;
using ZXing.QrCode;

namespace ZXingAndroid
{
    [Activity(Label = "ZXingAndroid", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : FormsAppCompatActivity, MobileBarcodeScanner.IOnScanCompletedListener
    {
        MobileBarcodeScanner _mobScanner;

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            _mobScanner = new MobileBarcodeScanner(this);
            _mobScanner.UseCustomOverlay = false;
            _mobScanner.CustomTabText = "Scan Here";
            _mobScanner.TopText = "Hold camera up to barcode to scan";
            _mobScanner.BottomText = "Barcode will automatically scan";
        }

        async Task ScanAsync()
        {
            //扫描二维码
            var result = await _mobScanner.Scan(new MobileBarcodeScanningOptions
            {
                UseFrontCameraIfAvailable = false,
                TryHarder = true,
                PossibleFormats = new List<BarcodeFormat> { BarcodeFormat.QR_CODE }
            });
            //处理扫描结果  
            if (result != null)
            {
                _mobScanner.AutoFocus();
                Console.WriteLine("扫码结果: " + result.Text);
            }
        }

        private void QrCodeScanner_onDecodeResult(Result result)
        {
            Console.WriteLine(result.Text);
        }

        public void OnScanCompleted(string p0, global::ZXing.Result p1)
        {
            throw new NotImplementedException();
        }
    }
}

上述示例演示了如何使用ZXing.Net.Mobile在Xamarin.Android中扫描二维码,以及如何处理扫描结果。

3. 总结

通过上述示例,我们可以轻松了解到如何使用ZXing.Net.Mobile在Xamarin平台上的使用方法,通过扫描条码和二维码的例子我们也了解了ZXing.Net.Mobile库的用法。在实际开发工作中,能够熟练掌握这个框架,可以为我们的开发工作加速计。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# Xamarin利用ZXing.Net.Mobile进行扫码的方法 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • 详解.NET Core使用Quartz执行调度任务进阶

    在 .NET Core 中,可以使用 Quartz.NET 来执行调度任务。Quartz.NET 是一个开源的作业调度框架,可以用于在 .NET 应用程序中执行定时任务、计划任务等。以下是详解 .NET Core 使用 Quartz 执行调度任务进阶的完整攻略: 步骤一:安装 Quartz.NET 在 .NET Core 项目中,可以使用 NuGet 包管理…

    C# 2023年5月17日
    00
  • C# Base 64 编码/解码实现代码

    下面我会详细讲解“C# Base 64 编码/解码实现代码”的完整攻略: 简介 Base 64 编码是一种常见的用于传输二进制数据的编码方式,通常用于在网络传输中将二进制的数据转换为 ASCII 字符串,方便传输和存储。C# 中提供了对 Base 64 编码和解码的支持,使用非常方便。 Base 64 编码实现 C# 中实现 Base 64 编码的方法非常简…

    C# 2023年5月31日
    00
  • C#中WebBroeser控件用法实例教程

    C#中WebBrowser控件用法实例教程 简介 WebBrowser控件可用于在C# Windows窗体应用程序中加载网页或HTML文档。其使用方法也非常简单,本文将提供WebBrowser控件的用法实例教程。 步骤 1. 在Windows Form中添加WebBrowser控件 在Visual Studio中创建一个Windows窗体应用程序,并在窗体设…

    C# 2023年6月7日
    00
  • C#访问SQL Server数据库的实现方法

    下面就为您详细讲解“C#访问SQL Server数据库的实现方法”的完整攻略。整个攻略主要围绕以下几个方面展开: 连接SQL Server数据库 执行SQL语句 读取数据库数据 更新数据库数据 关闭数据库连接 接下来我们将依次对以上5点进行详细的说明。 连接SQL Server数据库 在C#中,我们可以通过 SqlConnection 类来连接 SQL Se…

    C# 2023年6月1日
    00
  • 2016主流编程语言的详细对比

    2016主流编程语言的详细对比攻略 介绍 不同的编程语言在不同的场合具有不同的特点。因此,为了在选择编程语言时不至于盲目,有必要对不同的编程语言进行对比。本文将介绍2016年主流编程语言的详细对比,帮助读者快速了解不同编程语言的优劣,选择最适合的编程语言。 对比内容 本文将对2016年主流编程语言进行以下方面的对比: 语言特点:介绍编程语言的基本特性,如编译…

    C# 2023年6月7日
    00
  • 利用Warensoft Stock Service编写高频交易软件

    利用Warensoft Stock Service编写高频交易软件需要具备一定的编程和交易知识。下面是一些步骤,可以帮助您开始: 1. 注册并开通Warensoft帐户 Warensoft是提供互联网股票交易服务的平台。首先,需要在Warensoft官网上注册一个帐户,并通过实名认证等方式完成开户流程。注册后,可以使用Warensoft Stock Serv…

    C# 2023年6月6日
    00
  • c#进程之间对象传递方法

    C#中进程间对象传递有多种方式,其中常用的有以下几种: 1. 使用序列化 一种可行的方式是使用序列化将对象转化为二进制并传递到目标进程,再反序列化还原为对象。这个过程需要满足对象继承了Serializable接口并在对象中定义了序列化方法(例如,实现ISerializable接口)。 下面是示例代码: 定义一个包含序列化方法的类: [Serializable…

    C# 2023年6月1日
    00
  • ASP.NET中DES加密与解密MD5加密帮助类的实现代码

    下面是ASP.NET中DES加密与解密MD5加密帮助类的实现代码的完整攻略。 1. DES加密与解密帮助类 1.1 实例化帮助类 DESHelper desHelper = new DESHelper("yourkey"); DESHelper构造函数需要传入一个字符串类型的key,该key用于DES加密与解密过程中加密密钥的生成。 1.…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部