启动 URI 的默认应用

重要的 API

了解如何启动统一资源标识符 (URI) 的默认应用。 URI 允许你启动其他应用以执行特定任务。 本主题还提供许多内置于 Windows 的 URI 方案的概述。 也可以启动自定义 URI。 有关注册自定义 URI 方案和处理 URI 激活的详细信息,请参阅处理 URI 激活

URI 方案允许通过单击超链接打开应用。 正如可以使用 mailto: 启动新电子邮件一样,也可以使用 http: 打开默认 Web 浏览器

本主题介绍 Windows 中内置的以下 URI 方案:

URI 方案 发布
bingmaps:、ms-drive-to: 和 ms-walk-to: 地图应用
http: 默认 web 浏览器
mailto: 默认电子邮件应用
ms-call: 调用应用程序
ms-chat: 消息传送应用
ms-people: 人员应用
ms-photos: “照片”应用
ms-settings: 设置应用
ms-store: Microsoft Store 应用
ms-tonepicker: 音调选取器
ms-yellowpage: 114 查号应用
msnweather: “天气”应用
microsoft-edge: Microsoft Edge 浏览器

例如,以下 URI 将打开默认浏览器并显示必应网站。

https://bing.com

还可以启动自定义 URI 方案。 如果没有安装用于处理该 URI 的应用,可以推荐一个应用供用户安装。 有关详细信息,请参阅在无法处理 URI 时建议应用

通常,你的应用无法选择已启动的应用。 由用户决定要启动的应用。 可以注册多个应用以处理相同的 URI 方案。 但保留 URI 方案除外。 会忽略保留 URI 方案的注册。 有关保留 URI 方案的完整列表,请参阅处理 URI 激活。 如果多个应用可能注册了相同的 URI 方案,应用可以建议启动特定的应用。 有关详细信息,请参阅在无法处理 URI 时建议应用

调用 LaunchUriAsync 以启动 URI

使用 LaunchUriAsync 方法启动 URI。 调用此方法时,应用必须是前台应用,也就是说,它必须对用户可见。 此要求有助于确保用户保持掌控。 若要满足此要求,请确保将所有 URI 启动直接绑定到应用的 UI。 用户必须始终采取一些操作来启动 URI 启动。 如果尝试启动 URI,并且应用不在前台,启动将失败,并且将调用错误回调。

首先创建一个 System.Uri 对象来表示 URI,然后将该对象传递给 LaunchUriAsync 方法。 使用返回结果查看调用是否成功,如以下示例所示。

private async void launchURI_Click(object sender, RoutedEventArgs e)
{
   // The URI to launch
   var uriBing = new Uri(@"http://www.bing.com");

   // Launch the URI
   var success = await Windows.System.Launcher.LaunchUriAsync(uriBing);

   if (success)
   {
      // URI launched
   }
   else
   {
      // URI launch failed
   }
}

在某些情况下,操作系统将提示用户查看他们是否确实想要切换应用。

覆盖在应用背景灰显的警告对话框。对话框询问用户是否要切换应用,并在右下角有“是”和“否”按钮。突出显示了“否”按钮。

如果始终希望出现此提示,请使用 Windows.System.LauncherOptions.TreatAsUntrusted 属性告知操作系统显示警告。

// The URI to launch
var uriBing = new Uri(@"http://www.bing.com");

// Set the option to show a warning
var promptOptions = new Windows.System.LauncherOptions();
promptOptions.TreatAsUntrusted = true;

// Launch the URI
var success = await Windows.System.Launcher.LaunchUriAsync(uriBing, promptOptions);

请参阅在无法处理 URI 时建议应用

在某些情况下,用户可能尚未安装应用来处理要启动的 URI。 默认情况下,操作系统会通过向用户提供一个链接来搜索应用商店中的相应应用来处理此类情形。 如果要向用户提供在此应用场景中获取应用的特定建议,可以通过传递该建议以及要启动的 URI 来实现。

当有多个应用程序注册了处理 URI 方案时,推荐功能也非常有用。 建议使用特定应用时,如果该应用已安装,Windows 将会将其打开。

若要提出建议,请使用设置为要推荐的 Microsoft Store 中应用之包系列名称的 LauncherOptions.preferredApplicationPackageFamilyName 调用 Windows.System.Launcher.LaunchUriAsync(Uri, LauncherOptions) 方法。 操作系统使用此信息将在 Microsoft Store 中搜索应用的常规选项,替换为从 Microsoft Store 获取推荐应用的特定选项。

// Set the recommended app
var options = new Windows.System.LauncherOptions();
options.PreferredApplicationPackageFamilyName = "Contoso.URIApp_8wknc82po1e";
options.PreferredApplicationDisplayName = "Contoso URI Ap";

// Launch the URI and pass in the recommended app
// in case the user has no apps installed to handle the URI
var success = await Windows.System.Launcher.LaunchUriAsync(uriContoso, options);

设置剩余视图首选项

调用 LaunchUriAsync 的源应用可以请求他们在 URI 启动后保持在屏幕上。 默认情况下,Windows 会尝试在源应用和处理 URI 的目标应用之间平等分享所有可用空间。 源应用可以使用 DesiredRemainingView 属性向操作系统指示,其希望其应用窗口占用更多或更少的可用空间。 DesiredRemainingView 还可用于指示源应用不需要在 URI 启动后保留在屏幕上,并且可由目标应用完全替换。 此属性仅指定调用应用的首选窗口大小。 它不指定可能同时处于屏幕上的其他应用的行为。

注意 Windows 在确定源应用的最终窗口尺寸时会考虑多个不同因素;例如,源应用的首选项、屏幕上的应用数量以及屏幕的方向等。 通过设置 DesiredRemainingView,你无法保证源应用的特定窗口化行为。

// Set the desired remaining view.
var options = new Windows.System.LauncherOptions();
options.DesiredRemainingView = Windows.UI.ViewManagement.ViewSizePreference.UseLess;

// Launch the URI
var success = await Windows.System.Launcher.LaunchUriAsync(uriContoso, options);

URI 方案

下面介绍了各种 URI 方案。

呼叫应用 URI 方案

使用 ms-call: URI 方案启动呼叫应用。

URI 方案 Result
ms-call:settings 呼叫应用设置页。

电子邮件 URI 方案

使用 mailto: URI 方案启动默认邮件应用。

URI 方案 结果
mailto: 启动默认电子邮件应用。
mailto:[email address] 启动电子邮件应用,并在“收件人”行上创建具有指定电子邮件地址的新邮件。 请注意,在用户点击“发送”之前,不会发送电子邮件。

HTTP URI 方案

使用 http: URI 方案启动默认 Web 浏览器。

URI 方案 结果
http: 启动默认 Web 浏览器。

地图应用 URI 方案

使用 bingmaps:ms-drive-to:ms-walk-to: URI 方案启动 Windows 地图应用至特定的地图、路线和搜索结果。 例如,以下 URI 将打开 Windows 地图应用,并显示以纽约市为中心的地图。

bingmaps:?cp=40.726966~-74.006076

Windows 地图应用的示例。

有关详细信息,请参阅启动 Windows 地图应用。 若要在自己的应用中使用地图控件,请参阅显示具有 2D、3D 和街景视图的地图

消息传递应用 URI 方案

使用 ms-chat: URI 方案启动 Windows 消息应用。

URI 方案 结果
ms-chat: 启动消息应用。
ms-chat:?ContactID={contacted} 允许使用特定联系人的信息启动消息传递应用程序。
ms-chat:?Body={body} 允许使用字符串作为消息内容启动消息应用程序。
ms-chat:?Addresses={address}&Body={body} 允许使用特定地址信息和作为消息内容的字符串启动消息应用程序。 注意:地址可以串联。
ms-chat:?TransportId={transportId} 允许使用特定传输 ID 启动消息传递应用程序。

音调选取器 URI 方案

使用 ms-tonepicker: URI 方案选择铃声、警报和系统声调。 还可以保存新的铃声并获取音调的显示名称。

URI 方案 结果
ms-tonepicker: 选取铃声、警报和系统音调。

参数通过 ValueSet 传递到 LaunchURI API。 参阅使用 ms-tonepicker URI 方案选择并保存音调了解详情。

114 查号应用 URI 方案

使用 ms-yellowpage: URI 方案启动 114 查号应用。

URI 方案 结果
ms-yellowpage:?input=[keyword]&method=[String or T9] 启动“114 查号”应用。
input 指想要搜索的关键字。
method 指搜索类型(字符串或 T9 搜索)。
method 如果是 T9(键盘类型),则 keyword 应是映射到要搜索的 T9 键盘字母的数字字符串。
method 如果是 String,则搜索关键字 keyword

人员应用 URI 方案

使用 ms-people: URI 方案启动人员应用。 有关详细信息,请参阅启动“人脉”应用

照片应用 URI 方案

使用 ms-photos: URI 方案启动“照片”应用以查看图像或编辑视频。 例如:
查看图像:ms-photos:viewer?fileName=c:\users\userName\Pictures\image.jpg
或编辑视频:ms-photos:videoedit?InputToken=123abc&Action=Trim&StartTime=01:02:03

注意

用于编辑视频或显示图像的 URI 仅在桌面上可用。

URI 方案 结果
ms-photos:viewer?fileName={filename} 启动“照片”应用以查看指定图像,其中 {filename} 是完全限定的路径名称。 例如:c:\users\userName\Pictures\ImageToView.jpg
ms-photos:videoedit?InputToken={input token} 在文件令牌表示的文件的视频编辑模式下启动“照片”应用。 InputToken 是必填项。 使用 SharedStorageAccessManager 来获取文件的标记。
ms-photos:videoedit?Action={action} 该参数用于指定在哪种视频编辑模式中打开“照片”应用,其中 {action} 为以下内容之一:SlowMotion、FrameExtraction、Trim、View、Ink。 “操作”是必需的。
ms-photos:videoedit?StartTime={timespan} 一个可选参数,指定开始播放视频的位置。 {timespan} 必须采用 "hh:mm:ss.ffff" 格式。 如果未指定,则默认为 00:00:00.0000

“设置”应用 URI 方案

使用 ms-settings: URI 方案启动 Windows“设置”应用。 启动“设置”应用是编写隐私感知应用的重要组成部分。 如果应用无法访问敏感资源,我们建议为用户提供指向该资源隐私设置的便捷链接。 例如,以下 URI 将打开“设置”应用,并显示相机隐私设置。

ms-settings:privacy-webcam

相机隐私设置。

有关详细信息,请参阅启动 Windows“设置”应用隐私感知应用指南

Microsoft Store 应用 URI 方案

使用 ms-windows-store: URI 方案启动 UWP 应用。 打开产品详细信息页、产品审阅页和搜索页等。例如,以下 URI 将打开 UWP 应用并启动 Microsoft Store 的主页。

ms-windows-store://home/

有关详细信息,请参阅启动 UWP 应用

“天气”应用 URI 方案

使用 msnweather: URI 方案启动“天气”应用。

URI 方案 结果
msnweather://forecast?la=[latitude]&lo=[longitude] 在“预测”页中基于位置的地理坐标启动“天气”应用。
latitude 指位置的纬度。
longitude 指位置的经度。

Microsoft Edge URI 方案

使用 microsoft-edge: URI 方案启动 Microsoft Edge 浏览器并导航到指定 URL。

URI 方案 结果
microsoft-edge:https://example.com/] 打开 Microsoft Edge 浏览器并导航到 https://example.com/