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