将 ZXingScannerPage 与 XF 一起使用,我的内容页面出现奇怪的行为

Using ZXingScannerPage with XF, my content page has weird behavior

我正在制作一个 xamarin 形式的应用程序,我将有一个类似于 whatapp web 的登录名,一个屏幕上的二维码,将由 phone 在模拟器中使用 visual studio 2017 我没有问题,但是当我将应用程序导出到 apk 并安装在移动设备上时,应用程序读取 qr 和 returns 到以前的登录屏幕,没有任何反应,这应该转到我有仪表板的下一个屏幕。

可以是什么?我附上我使用的代码。

 btnScanQRCode.IsEnabled = false;
        var scan = new ZXingScannerPage();

        scan.OnScanResult += (result) =>
        {
            scan.IsScanning = false;
            Device.BeginInvokeOnMainThread(async () =>
            {
                await Application.Current.MainPage.Navigation.PopAsync();
                var resultado = JsonConvert.DeserializeObject<QrCode>(result.Text);

                JObject qrObject = JObject.Parse(JsonConvert.SerializeObject(resultado));
                JsonSchema schema = JsonSchema.Parse(SettingHelper.SchemaJson);

                bool valid = qrObject.IsValid(schema);

                if (valid == true)
                {
                    App.Database.InsertQrCode(resultado);
                    QrCode qr = App.Database.GetQrCode();
                    await _viewModel.Login();                
                    await Navigation.PushAsync(new Organization());
                }
                else
                {
                    await DisplayAlert("False", JsonConvert.SerializeObject(resultado), "ok");
                }
            });
        };
        await Application.Current.MainPage.Navigation.PushAsync(scan);
        btnScanQRCode.IsEnabled = true;

这本来是一个评论,但通过写作我意识到这就是答案。

您需要调试代码。附加设备并在调试配置中部署应用程序。单步执行您的代码,看看哪里出错了。

听起来它正在悄无声息地崩溃,而且可能是在您在 QrCode 中反序列化 result.Text 的那一行。 result.Text 只是一个字符串,永远不会反序列化为一个对象。您可能需要一个采用 QrCode(result.Text).

之类的字符串的构造函数
  1. 首先扫描,然后使用扫描结果在您的应用中执行其他操作。

        var scanner = new ZXing.Mobile.MobileBarcodeScanner();
    
        var result = await scanner.Scan();
    
  2. 检查相机权限是否正确。我打赌你的问题就在那里。