我正在开发一款针对桌面和移动设备的UWP应用。 在应用程序的某个时刻,使用以下代码
var success = await Windows.System.Launcher.LaunchUriAsync(new Uri(uri), new Windows.System.LauncherOptions { ContentType = mimeType });
此代码在桌面上正常工作。例如,当URI是图像的URI时(就像我试过的那个https://support.files.wordpress.com/2009/07/pigeony.jpg),启动了照片应用程序并显示照片。
在移动设备上,完全相同的代码,使用完全相同的参数会抛出异常。
消息:方法或操作未实现
StackTrace:at Windows.System.LauncherOptions.put_ContentType(String value)at MyApp.Services.PresentationService.d__7.MoveNext()
问题似乎与LauncherOptions有关,因为如果我从调用中删除它们,图像会在浏览器中正常打开。 (但这是不可接受的功能,我需要启动相应的应用程序)。
根据documentation,关于LaunchUriAsync方法的Windows 10和Windows 10移动版之间应该没有区别。有人知道发生了什么吗?
答案 0 :(得分:1)
根据文档,关于LaunchUriAsync方法的Windows 10和Windows 10移动版之间应该没有区别
实际上,LauncherOptions.ContentType
属性仅在桌面设备上实现,请参阅here中的备注
重要此属性仅在桌面设备上实现。
-
然而,这是不可接受的功能,我需要启动相应的应用程序
目前,没有简单/直接的方式在Mobile上实现这一点,有一些解决方法,例如:将图像下载到本地文件夹/图片文件夹,打开照片应用程序或在应用程序中显示它们
var options = new Windows.System.LauncherOptions();
var df = Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily;
if (df == "Windows.Desktop")
{
options.ContentType = "image/jpeg";
}
else
{
//Omitted, save network images into Picture folder
uriToLaunch = "ms-photos:///"; //Launch Photo app
}
var uri = new Uri(uriToLaunch);
// Launch the URI with the content type
var success = await Windows.System.Launcher.LaunchUriAsync(uri, options);
顺便说一句,请使用反馈应用提交您的功能请求,这是让MS了解用户/开发人员需要的好方法。