Windows.System.LaunchUriAsync 仅在 Windows 10 手机上抛出异常
Windows.System.LaunchUriAsync throws exception only on 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)时,照片应用程序启动并显示照片。
但是在移动设备上,具有完全相同参数的完全相同的代码会引发异常。
Message: The method or operation is not implemented
StackTrace: at
Windows.System.LauncherOptions.put_ContentType(String value) at
MyApp.Services.PresentationService.d__7.MoveNext()
问题似乎出在 LauncherOptions 上,因为如果我从调用中删除它们,图像会在浏览器中正常打开。 (然而,这是不可接受的功能,我需要启动适当的应用程序)。
根据 documentation,windows 10 和 windows 10 移动版之间在 LaunchUriAsync 方法方面应该没有区别。有人知道这是怎么回事吗?
According to documentation there should be no differences between windows 10 and windows 10 mobile concerning the LaunchUriAsync method
实际上,LauncherOptions.ContentType
属性 仅在桌面设备上实现,请参阅 here
中的备注
Important This property is only implemented on Desktop devices.
-
However this is not acceptable functionality, I need to launch the appropriate application
目前,没有 simple/direct 在移动设备上实现此功能的方法,有一些解决方法,例如:将图像下载到本地 folder/Picture 文件夹,打开照片应用程序或在您的应用程序中显示它们
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);
顺便说一句,请使用 Feedback 应用程序提交您的功能请求,这是让 MS 知道 users/developers 需要什么的好方法。
我正在开发一个同时针对桌面和移动设备的 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)时,照片应用程序启动并显示照片。
但是在移动设备上,具有完全相同参数的完全相同的代码会引发异常。
Message: The method or operation is not implemented
StackTrace: at Windows.System.LauncherOptions.put_ContentType(String value) at MyApp.Services.PresentationService.d__7.MoveNext()
问题似乎出在 LauncherOptions 上,因为如果我从调用中删除它们,图像会在浏览器中正常打开。 (然而,这是不可接受的功能,我需要启动适当的应用程序)。
根据 documentation,windows 10 和 windows 10 移动版之间在 LaunchUriAsync 方法方面应该没有区别。有人知道这是怎么回事吗?
According to documentation there should be no differences between windows 10 and windows 10 mobile concerning the LaunchUriAsync method
实际上,LauncherOptions.ContentType
属性 仅在桌面设备上实现,请参阅 here
Important This property is only implemented on Desktop devices.
-
However this is not acceptable functionality, I need to launch the appropriate application
目前,没有 simple/direct 在移动设备上实现此功能的方法,有一些解决方法,例如:将图像下载到本地 folder/Picture 文件夹,打开照片应用程序或在您的应用程序中显示它们
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);
顺便说一句,请使用 Feedback 应用程序提交您的功能请求,这是让 MS 知道 users/developers 需要什么的好方法。