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