首页 > 代码库 > 起调UWP的几种方法

起调UWP的几种方法

由于种种原因吧,我需要使用一个WPF程序起调一个UWP程序,下面总结一下,给自己个备份。

启动UWP程序的关键是协议启动

给我们的UWP应用添加一个协议,like this:

技术分享

然后使用协议启动该UWP有一下几种方式:

1. 使用UWP的Launcher API

// Create the URI to launch from a string.
var uri = new Uri("protocolname:");

// Launch the URI.
bool success = await Windows.System.Launcher.LaunchUriAsync(uri);

这里涉及到一个问题:怎么在WPF中使用UWP的API,可参考链接:https://blogs.windows.com/buildingapps/2017/01/25/calling-windows-10-apis-desktop-application/#Zgu8WtZa81OyUzyR.97

2.使用PackageManager,也是UWP的API

//var manager = new PackageManager();
//var p = manager.FindPackagesForUser("", PackageId);
//var ls = await p.ToList()[0].GetAppListEntriesAsync();
//foreach (var item in ls)
//{
// await item.LaunchAsync();
//}

这里感谢下vbfool大神的悉心指导!

其中的PackageId是包系列名(PackageFamilyName)

3.使用Process.Start(new ProcessStartInfo("protocolname:"));

4.使用命令行

like:>start myapplication:protocol-parameter,参考https://docs.microsoft.com/zh-cn/windows/uwp/xbox-apps/automate-launching-uwp-apps#a-nameaccepting-argumentsa接受参数

链接中还介绍了另外一种方式:启动激活(不支持命令行参数),在此不再赘述.

写了几个月的WPF发现把UWP的东西忘完了,哎,如此弱鸡!

 

起调UWP的几种方法