如何在Windows应用程序打包项目中处理URI激活?

时间:2019-04-10 10:50:51

标签: c# wpf uwp windows-10 desktop-bridge

我有一个WPF应用程序,并且正在使用桌面桥制作UWP应用程序。基本上,我创建了一个新的Windows App Packaging项目,并将WPF项目添加到其中作为参考。我在应用清单中添加了带有自定义URI的Protocol声明,但无法实现/覆盖OnActivated()方法,因为我没有在哪里进行操作的类,甚至无法向其中添加类这类项目。那么,有什么想法可以在这种环境下处理自定义URI调用吗?

我已经创建了另一个UWP项目,该项目只处理这些请求,并且还将这个项目添加到主包装项目中作为参考。基本上可以正常工作,但是如果我创建了应用程序包并安装了它(appxbundle),则根本不会调用URI处理程序。

1 个答案:

答案 0 :(得分:0)

有两种方法可以做到这一点:

1)协议激活参数传递到应用程序的main()函数。但是,由于您正在使用WPF,因此需要首先了解如何使用main()函数。在此答案中对此进行了解释:
No Main() in WPF?

2)当前Windows SDK(1809和更高版本)提供了更好的方法:您可以将此新方法调用为打包的WPF应用程序(或任何打包的Win32应用程序)的get激活参数:
https://docs.microsoft.com/en-us/uwp/api/windows.applicationmodel.appinstance.getactivatedeventargs#Windows_ApplicationModel_AppInstance_GetActivatedEventArgs