Xamarin.Forms IMediaPicker WinPhone
Xamarin.Forms IMediaPicker WinPhone
我正在开发一款将 运行 用于 Android 和 Windows Phone 8.0 的应用程序。
此应用程序必须能够拍照。
我通过使用 IMediaPicker 找到了一种简单的方法来做到这一点。
但是,它仅适用于 Android。
在 WinPhone 下面的代码 returns null.
mediaPicker = DependencyService.Get<IMediaPicker>();
如何在 WinPhone 上获取 IMediaPicker?有例子吗?
提前致谢!
我发现了问题。
在 WinPhone 上,mediaPicker 将为空。那么,就需要从Resolver中获取了。
if (mediaPicker == null)
{
mediaPicker = Resolver.Resolve<IDevice>().MediaPicker;
}
但是,要使其正常工作,必须在 WinPhone 应用程序构造函数上启动解析器,如下所示:
var resolverContainer = new SimpleContainer();
resolverContainer.Register<IDevice>(t => WindowsPhoneDevice.CurrentDevice).Register<IDisplay>(t => t.Resolve<IDevice>().Display);
Resolver.SetResolver(resolverContainer.GetResolver());
希望对其他人有所帮助。
我正在开发一款将 运行 用于 Android 和 Windows Phone 8.0 的应用程序。 此应用程序必须能够拍照。 我通过使用 IMediaPicker 找到了一种简单的方法来做到这一点。 但是,它仅适用于 Android。 在 WinPhone 下面的代码 returns null.
mediaPicker = DependencyService.Get<IMediaPicker>();
如何在 WinPhone 上获取 IMediaPicker?有例子吗?
提前致谢!
我发现了问题。 在 WinPhone 上,mediaPicker 将为空。那么,就需要从Resolver中获取了。
if (mediaPicker == null)
{
mediaPicker = Resolver.Resolve<IDevice>().MediaPicker;
}
但是,要使其正常工作,必须在 WinPhone 应用程序构造函数上启动解析器,如下所示:
var resolverContainer = new SimpleContainer();
resolverContainer.Register<IDevice>(t => WindowsPhoneDevice.CurrentDevice).Register<IDisplay>(t => t.Resolve<IDevice>().Display);
Resolver.SetResolver(resolverContainer.GetResolver());
希望对其他人有所帮助。