如何在 MAUI Blazor Hybrid 上使用相机 QR 码读取器

dpc*_*c46 8 qr-code maui maui-blazor

有没有人找到从 Blazor MAUI 混合应用程序扫描二维码的有效解决方案?

我已经找到了许多用于“普通”Blazor 的库(例如 BigIslandBarcoding、ZXing.Net),但没有任何具体内容可以从 razor 页面(在 BlazorWebView 中)在移动设备(iOS 和 Android)上执行此操作。

我正在寻找一个简单的操作来通过单击按钮打开相机读取器/扫描仪,但找不到类似的东西。

exe*_*bat 3

我今天玩这个是因为我将 Blazor 服务器应用程序移植到 MAUI Blazor 并遇到了同样的问题。

编辑: 您不需要下面的这部分

我设法通过使用此项目 https://github.com/MackinnonBuck/MauiBlazorPermissionsExample来修复它 以获取设备特定权限,然后安装

编辑:当您尝试发布为版本时,该库有问题

https://github.com/Redth/ZXing.Net.Mobile

所以用这个代替

https://github.com/g0dpain/ZXing.Net.Mobile

它是为 Xamarin 制作的,但在 MAUI 中运行得很好。您需要做的就是将此代码添加到 Android 项目 MainActivity.cs 文件中

public override void OnRequestPermissionsResult(int requestCode, string[] permissions, Permission[] grantResults)
{
    Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
    base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}



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

    Xamarin.Essentials.Platform.Init(Application);

    ZXing.Mobile.MobileBarcodeScanner.Initialize(Application);

}
Run Code Online (Sandbox Code Playgroud)

在你的 Razor 页面中你可以这样称呼它

async Task ScanBarcode()
{

    var scanner = new ZXing.Mobile.MobileBarcodeScanner();
   
    var result = await scanner.Scan();

    barcode = result.Text;


}
Run Code Online (Sandbox Code Playgroud)

我在 Android 模拟器和真实设备上尝试过,效果很好。