私はXamarin.Formsアプリケーションを持っています。私はZXing.Mobile.Formsを使ってQRコードをスキャンします。しかし、カメラをQRコードに向けるとOnScanResult
イベントが2回呼び出されます。これは、私のコードである1の忠実な再現がhereを提案:ZXing OnScanResultがXamarin.Formsで2回呼び出されました
private async void onScanQRCode(object sender, EventArgs e)
{
var scanPage = new ZXingScannerPage(); // executed just once
scanPage.OnScanResult += (result) => {
// Stop scanning
scanPage.IsScanning = false; // executed twice (confused)
// Pop the page and show the result
Device.BeginInvokeOnMainThread(() => {
Navigation.PopAsync();
/* Business code */
Account scannedAccount = URLInterpreter.Accept(result.Text);
ViewModel.ProcessNewAccount(scannedAccount);
/* End of business code */
});
};
// Navigate to our scanner page
await Navigation.PushAsync(scanPage);
}
そして、これは上記のメソッドを呼び出すボタンのXAMLです:
<Button x:Name="btnScanCode" Text="Scan QR Code" Clicked="onScanQRCode" />
任意のポインタ?
更新日明らかに、これはアプリをデバッグしていて、電話機がVisual Studioに接続されている場合にのみ発生します。デバッガをアタッチせずにアプリを起動すると、そのイベントは1回だけ発生します。