Zxing.Net в Xamarin.Forms не вернет результат на Android - PullRequest
0 голосов
/ 07 марта 2019

У меня есть приложение Xamarin.Forms, использующее сканер штрих-кода Zxing.Net, и оно прекрасно работает в UWP, но по какой-то причине оно никогда не вернет результат при запуске его на Android.

1 Ответ

1 голос
/ 07 марта 2019

Я нашел причину.Я загружаю пару страниц сканирования другого типа, поэтому у меня в корневой странице есть метод, который загружает нужный мне тип страницы сканирования:

MessagingCenter.Subscribe<ILoginPageViewModel, string>(this, "NavigateTo", async (sender, args) => {
            Type type = Type.GetType($"MyApp.Interfaces.{args}, MyApp");
            var page = (Page)ViewModelLocator.Container.Resolve(type);
            await Navigation.PushAsync(page);
        });

Проблема в строке await Navigation.PushAsync(page);.

Вот исправление:

MessagingCenter.Subscribe<ILoginPageViewModel, string>(this, "NavigateTo", (sender, args) => {
            Type type = Type.GetType($"MyApp.Interfaces.{args}, MyApp");
            var page = (Page)ViewModelLocator.Container.Resolve(type);
            Device.BeginInvokeOnMainThread(async () =>
            {
                await Navigation.PushAsync(page);
            });
        });

По какой-то причине это не было проблемой на UWP

...