Zar*_*arp 4 dispose zxing xamarin
我将 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));
});
};
Run Code Online (Sandbox Code Playgroud)
来自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 上运行它
任何帮助深表感谢
小智 8
找到了解决方案......
仅使用 IsScanning=true 一次...在 ScannerView 构造函数或页面的 OnAppearing 中..
_zxing = new ZXingScannerView
{
VerticalOptions = LayoutOptions.Center,
HorizontalOptions = LayoutOptions.Center,
HeightRequest = 250,
WidthRequest = 250,
IsAnalyzing = true,
IsScanning = true,
};
Run Code Online (Sandbox Code Playgroud)
不要在 OnDisappearing 中写任何东西...
protected override void OnDisappearing()
{
// _zxing.IsScanning = false;
base.OnDisappearing();
}
Run Code Online (Sandbox Code Playgroud)
一旦扫描完成,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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3525 次 |
| 最近记录: |