如何处理 Windows 应用程序打包项目中的 URI 激活?
How to handle URI activation in a Windows Application Packaging Project?
我有一个 WPF 应用程序,我正在使用桌面桥制作一个 UWP 应用程序。基本上,我创建了一个新的 Windows App Packaging Project,并将我的 WPF 项目添加到其中作为参考。我在带有自定义 URI 的应用程序清单中添加了一个协议声明,但我不能 implement/override OnActivated()
方法,因为我没有 类 在哪里做它而且它不是甚至可以将 类 添加到此类项目中。那么,关于如何在此环境中处理我的自定义 URI 调用有什么想法吗?
我已经创建了另一个 UWP 项目,它只是处理这些请求,我也将这个项目添加到主打包项目中作为参考。基本上它可以工作,但是如果我创建应用程序包并安装它(appxbundle),那么根本不会调用 URI 处理程序。
有两种方法可以做到这一点:
1) 协议激活参数传递给您应用的 main() 函数。但是,由于您使用的是 WPF,因此您需要首先了解如何访问 main() 函数。这在这个答案中有解释:
No Main() in WPF?
2) 当前 Windows SDK(1809 及更高版本)提供了一种更好的方法:您可以调用此新方法来获取打包的 WPF 应用程序(或任何打包的 Win32 应用程序)的激活参数:
https://docs.microsoft.com/en-us/uwp/api/windows.applicationmodel.appinstance.getactivatedeventargs#Windows_ApplicationModel_AppInstance_GetActivatedEventArgs
我有一个 WPF 应用程序,我正在使用桌面桥制作一个 UWP 应用程序。基本上,我创建了一个新的 Windows App Packaging Project,并将我的 WPF 项目添加到其中作为参考。我在带有自定义 URI 的应用程序清单中添加了一个协议声明,但我不能 implement/override OnActivated()
方法,因为我没有 类 在哪里做它而且它不是甚至可以将 类 添加到此类项目中。那么,关于如何在此环境中处理我的自定义 URI 调用有什么想法吗?
我已经创建了另一个 UWP 项目,它只是处理这些请求,我也将这个项目添加到主打包项目中作为参考。基本上它可以工作,但是如果我创建应用程序包并安装它(appxbundle),那么根本不会调用 URI 处理程序。
有两种方法可以做到这一点:
1) 协议激活参数传递给您应用的 main() 函数。但是,由于您使用的是 WPF,因此您需要首先了解如何访问 main() 函数。这在这个答案中有解释:
No Main() in WPF?
2) 当前 Windows SDK(1809 及更高版本)提供了一种更好的方法:您可以调用此新方法来获取打包的 WPF 应用程序(或任何打包的 Win32 应用程序)的激活参数:
https://docs.microsoft.com/en-us/uwp/api/windows.applicationmodel.appinstance.getactivatedeventargs#Windows_ApplicationModel_AppInstance_GetActivatedEventArgs