2016-12-29 47 views
1

即時通訊使用ZXing.Net.Mobile的形式這樣ZXing可以停止或處理,所以我可以再次使用它?

    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後凍結當我再試一次 我曾試圖處置/停止掃描儀但都沒有成功

可以斑馬線被停止或處置這樣我就可以再次使用它?

即時通訊使用的Visual Studio 2015年的社區,xamarin.Forms 2.3.3.168,Syncfusion 14.4.0.15和ZXing.Net.Mobile 2.1.47。與Android版本6.0.1一個索尼XPERIA Z3運行它,並使用API​​ 23

任何幫助深表讚賞

+0

你從哪裏把這個代碼?我想我回答了類似的問題。請搜索我的答案 –

回答

2

找到了解決辦法....

使用IsScanning =真只有一次......在ScannerView構造或者在頁面的OnAppearing ..

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

    }; 

不要寫在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; 

} 
0

你爲什麼不與異步使用它?完成掃描後,它會將我返回到導航堆棧中。它看起來像你使用通用的掃描儀頁面,所以下面的解決方案將工作。

var scanner = new ZXing.Mobile.MobileBarcodeScanner(); 

var result = await scanner.Scan(); 

if (result != null) 
{ 
    variableToAssign = result.Text; 
} 
+0

我怎麼可以添加一個Customoverlay了這一點。我需要頁面上的後退按鈕。 它沒有讓我用scanner.CustomOverlay = viewtest 爲每一個例子我看到的是使用 – Zarp

相關問題