dpc*_*c46 8 qr-code maui maui-blazor
有没有人找到从 Blazor MAUI 混合应用程序扫描二维码的有效解决方案?
我已经找到了许多用于“普通”Blazor 的库(例如 BigIslandBarcoding、ZXing.Net),但没有任何具体内容可以从 razor 页面(在 BlazorWebView 中)在移动设备(iOS 和 Android)上执行此操作。
我正在寻找一个简单的操作来通过单击按钮打开相机读取器/扫描仪,但找不到类似的东西。
我今天玩这个是因为我将 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 模拟器和真实设备上尝试过,效果很好。