Windows.System.LaunchUriAsync仅在Windows 10移动版上引发异常

时间:2016-06-17 09:51:02

标签: uwp windows-10-mobile

我正在开发一款针对桌面和移动设备的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移动版之间应该没有区别。有人知道发生了什么吗?

1 个答案:

答案 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了解用户/开发人员需要的好方法。