gpt4 book ai didi

ios - Xamarin.Forms ZXing.Net.Mobile 在 iOS 10 上扫描结果后丢失当前页面

转载 作者:行者123 更新时间:2023-11-29 00:37:24 24 4
gpt4 key购买 nike

我正在使用 Xamarin.Forms,并且已经实现了 ZXing.Net.Mobile 来扫描条形码。

在 Android 上它工作正常,在 iOS 10 上读取条形码后功能“OnScanResult”被触发并执行命令 Navigation.PopAsync() 关闭扫描页面但一秒钟后它也关闭了我所在的当前页面显示结果!

        MyTapScan.Tapped += async (sender, e) =>
{
await MyBtScan.ScaleTo(1.20, 100, Easing.Linear);
await MyBtScan.ScaleTo(1, 100, Easing.Linear);
await Task.Delay(50);
//--------------------------------------------
MyAppLib.MyAppUtilitiesBarCodeReader MyBarCodeReader = new MyAppLib.MyAppUtilitiesBarCodeReader();
var MyScannerPage = MyBarCodeReader.GetBarCodeReaderPage();
//--------------------------------------------
MyScannerPage.OnScanResult += (result) => {
//Stop scanning
MyScannerPage.IsScanning = false;
//Pop the page and show the result
Device.BeginInvokeOnMainThread(() => {
Navigation.PopAsync();
MyMachSerialNumber.Text = result.Text;
});
};
//--------------------------------------------
//Display scanner
await Navigation.PushAsync(MyScannerPage);
};

请帮忙..!! :)

最佳答案

每次调用 MyTapScan.Tapped 时,您都会订阅 MyScannerPage.OnScanResult,因此如果您点击按钮 5 次,您的 OnScanResult 将被调用 5 次。我希望现在您知道如何解决这个问题。

可能的解决方案之一:获取您的 OnScanResult 委托(delegate)并使其成为独立的函数,比如说 ScanFinished。然后代替

MyScannerPage.OnScanResult +=(结果)

MyScannerPage.OnScanResult -= ScanFinished; 
MyScannerPage.OnScanResult += ScanFinished;

然后你可以确定在你再次订阅之前取消订阅该事件

关于ios - Xamarin.Forms ZXing.Net.Mobile 在 iOS 10 上扫描结果后丢失当前页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40295219/

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