gpt4 book ai didi

xamarin - ZXing 可以停止或处置以便我可以再次使用它吗?

转载 作者:行者123 更新时间:2023-12-03 20:18:21 34 4
gpt4 key购买 nike

我将 ZXing.Net.Mobile 用于这样的表单

                    var scanPage = new ZXingScannerPage();

scanPage.OnScanResult += (result) => {
// Stop scanning
scanPage.IsScanning = false;
// Pop the page and show the result
Device.BeginInvokeOnMainThread(async () => {
// await Navigation.PopAsync();
await Navigation.PushModalAsync(new Pages.DataGridPage(PladsId));

});
};

来自 https://components.xamarin.com/gettingstarted/zxing.net.mobile.forms

但是当我再次尝试时,一旦 carmera 被卡住,我就进行了扫描
我试图处理/停止扫描仪但没有成功

可以停止或处理 ZXing 以便我可以再次使用它吗?

我正在使用 Visual Studio 2015 社区、xamarin.Forms 2.3.3.168、Syncfusion 14.4.0.15 和 ZXing.Net.Mobile 2.1.47。在 Android 版本 6.0.1 并使用 API 23 的 sony xperia z3 上运行它

任何帮助深表感谢

最佳答案

找到了解决方案......

Use IsScanning=true only once... In ScannerView Constructor or in OnAppearing of the Page..


_zxing = new ZXingScannerView
{
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
HeightRequest = 250,
WidthRequest = 250,
IsAnalyzing = true,
IsScanning = true,

};

Don't write anything in OnDisappearing...


protected override void OnDisappearing()
{
// _zxing.IsScanning = false;
base.OnDisappearing();

}

一旦扫描完成,IsAnalysing 将被设置为 false,并且应在 OnAppearing 中设置为 true...
_zxing.OnScanResult += (result) =>       
Device.BeginInvokeOnMainThread(async () =>
{
if (!string.IsNullOrWhiteSpace(result.Text))
{
_zxing.IsAnalyzing = false;
await OnGettingResult(result.Text);
}
});

protected override void OnAppearing()
{
base.OnAppearing();
_zxing.IsAnalyzing = true;

//Not required if already set while intialization
//_zxing.IsScanning = true;

}

关于xamarin - ZXing 可以停止或处置以便我可以再次使用它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41382512/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com