有人找到从 Blazor MAUI 混合应用程序扫描二维码的可行解决方案吗?
我已经找到了许多用于“普通”Blazor 的库(例如 BigIslandBarcoding、ZXing.Net),但没有任何具体内容可以从 razor 页面(在 BlazorWebView 中)在移动设备(iOS 和 Android)上执行此操作。
我正在寻找一个简单的操作来通过单击按钮打开相机读取器/扫描仪,但找不到类似的东西。
我今天玩了这个,因为我正在将 Blazor 服务器应用程序移植到 MAUI Blazor 并遇到了同样的问题。
编辑: 您不需要下面的这部分
我设法使用这个项目修复它 https://github.com/MackinnonBuck/MauiBlazorPermissionsExample 为了获得设备特定的权限,然后我安装了
编辑:当您尝试发布为 Release 时,此库出现问题
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);
}
在你的 Razor 页面中你可以这样称呼它
async Task ScanBarcode()
{
var scanner = new ZXing.Mobile.MobileBarcodeScanner();
var result = await scanner.Scan();
barcode = result.Text;
}
我在 Android 模拟器和真实设备上尝试过,效果很好。
非常感谢exe.bat。我已经做到了,它在我的 Android MAUI Blazor 应用程序上运行得很好。