You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非Shell架构的.NET Maui应用中ZXing.Net.Maui扫描器失效问题

解决.NET Maui非Shell架构下ZXing.Net.Maui扫描器黑屏问题

核心问题及解决步骤

1. 确认ZXing服务已正确注册

在MauiProgram.cs中必须显式注册ZXing条码读取服务,这是所有场景的运行前提:

using ZXing.Net.Maui;

namespace MauiApp1;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .UseBarcodeReader(); // 必须添加此行完成服务注册

        // 其他项目配置代码...

        return builder.Build();
    }
}

2. 手动请求相机权限

非Shell架构下系统不会自动触发相机权限申请,需在页面加载时主动请求:
修改MainPage.xaml.cs,重写OnAppearing方法:

using ZXing.Net.Maui;
using Microsoft.Maui.ApplicationModel;

namespace MauiApp1;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
        cameraBarcodeReaderView.Options = new BarcodeReaderOptions
        {
            Formats = BarcodeFormats.OneDimensional,
            AutoRotate = true,
            Multiple = true
        };
    }

    protected override async void OnAppearing()
    {
        base.OnAppearing();
        // 请求相机权限
        var status = await Permissions.RequestAsync<Permissions.Camera>();
        if (status == PermissionStatus.Granted)
        {
            // 权限通过后启用相机
            cameraBarcodeReaderView.IsEnabled = true;
        }
    }
}

3. 修正相机控件布局

ScrollView与VerticalStackLayout的默认布局可能导致相机控件未分配有效尺寸,需给CameraBarcodeReaderView添加明确约束:
修改MainPage.xaml:

<zxing:CameraBarcodeReaderView x:Name="cameraBarcodeReaderView" 
                               HeightRequest="400" 
                               WidthRequest="300"
                               VerticalOptions="FillAndExpand" />

平台权限验证

需确保各平台项目已配置相机权限:

  • Android:在AndroidManifest.xml中添加<uses-permission android:name="android.permission.CAMERA" />
  • iOS:在Info.plist中添加NSCameraUsageDescription字段说明相机使用目的

内容的提问来源于stack exchange,提问作者Thomas Carlton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:59:19