Xamarin.Forms中的Zxing.Net在Android上不会返回结果

时间:2019-03-07 16:43:03

标签: android xamarin.forms zxing.net

我有一个使用Zxing.Net条码扫描器的Xamarin.Forms应用程序,它在UWP中运行良好,但是由于某种原因,当我在Android上运行它时,它永远不会返回结果。

1 个答案:

答案 0 :(得分:1)

我找到了原因。我加载了两个不同类型的扫描页面,因此我在根页面中有此方法可以加载所需的扫描页面类型:

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上不是问题