У меня есть приложение WPF, и я создаю приложение UWP, используя настольный мост. По сути, я создал новый проект упаковки приложений для Windows и добавил к нему свой проект WPF в качестве ссылки. Я добавил объявление протокола в манифест приложения с пользовательским URI, но я не могу реализовать/переопределить метод OnActivated()
, потому что у меня нет классов, где это можно сделать, и даже невозможно добавить классы в этот тип проекта. . Итак, есть идеи, как я могу обрабатывать свои пользовательские вызовы URI в этой среде?
Я уже создал другой проект UWP, который просто обрабатывает эти запросы, и я также добавил этот проект в основной проект упаковки в качестве эталона. В основном это работает, но если я создам пакет приложения и установлю его (appxbundle), то обработчик URI вообще не будет вызываться.
Есть два способа сделать это:
1) Аргументы активации протокола передаются в функцию main() вашего приложения. Однако, поскольку вы используете WPF, вам нужно сначала понять, как получить доступ к вашей функции main(). Это объясняется в этом ответе:
Нет Main() в WPF?
2) Лучший подход доступен с текущим Windows SDK (1809 и более поздние версии): вы можете вызвать этот новый метод для получения аргументов активации для вашего упакованного приложения WPF (или любого упакованного приложения Win32):
https://docs.microsoft.com/en-us/uwp/api/windows.applicationmodel.appinstance.getactivatedeventargs#Windows_ApplicationModel_AppInstance_GetActivatedEventArgs