0

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

4

1 回答 1

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

于 2019-03-07T16:43:02.593 回答