Передача параметров установки в приложение с помощью Установщика приложений
При распространении приложения с помощью MSIX вы можете настроить приложение таким образом, чтобы параметры строки запроса, определенные в URI загрузки и установки, передаются в приложение при запуске после нажатия пользователем uri загрузки и установки. Это работает независимо от того, впервые ли пользователь устанавливает приложение или если приложение было установлено ранее. В этой статье показано, как настроить упакованое приложение и его URI загрузки и установки, чтобы воспользоваться этой функцией. Это может быть полезно, если вы хотите отслеживать или обрабатывать различные установки на основе источника, типа скачивания и т. д., а также будет работать для веб-загрузки, а также в любых других случаях, когда пользователь щелкает URI, например из кампании электронной почты. Дополнительные сведения проверка этой записи блога.
Настройка приложения для активации протокола
Первое, что необходимо сделать, — зарегистрировать приложение для запуска с помощью определяемого пользовательского протокола . При вызове этого протокола приложение запускается, а все праметры, указанные в URI, передаются аргументам события активации приложения при запуске. Вы можете зарегистрировать протокол, добавив запись расширения протокола в узле расширений приложений в файле appxmanifest.xml MSIX:
<Application>
...
<Extensions>
<uap:Extension Category="windows.protocol">
<uap:Protocol Name="my-custom-protocol"/>
</uap:Extension>
</Extensions>
...
</Application>
Если вы используете проект упаковки Windows, можно также определить пользовательский протокол с помощью редактора манифеста по умолчанию, дважды щелкнув файл package.appxmanifest, перейдя на вкладку "Объявления" и выбрав протокол в разделе "Доступные объявления":
Написание кода для обработки параметров при запуске приложения после установки
Вам потребуется реализовать код в приложении для обработки параметров установки, которые будут переданы приложению при запуске. В приведенном ниже примере кода используется метод AppInstance.GetActivatedEventArgs для определения типа активации, используемого для создания экземпляра приложения (можно также обрабатывать параметры с помощью другого метода). При запуске или активации приложения с параметрами sting запроса из URI установки (см. определение в следующем разделе), тип активации будет активацией протокола, как определено пользовательским протоколом, объявленным в appxmanifest.xml и uri загрузки и установки. События активации будут иметь тип ProtocolActivatedEventArgs , и это то, что использует следующий код:
using Windows.ApplicationModel;
using Windows.ApplicationModel.Activation;
public static void Main(string[] cmdArgs)
{
var activationArgs = AppInstance.GetActivatedEventArgs();
switch (activationArgs.Kind)
{
//Install parameters will be passed in during a protocol activation
case ActivationKind.Protocol:
HandleProtocolActivation(activationArgs as ProtocolActivatedEventArgs);
break;
case ActivationKind.Launch:
//Regular launch activation type
HandleLaunch(activationArgs as LaunchActivatedEventArgs);
break;
default:
break;
}
static void HandleProtocolActivation(ProtocolActivatedEventArgs args)
{
if (args.Uri != null)
{
//Handle the installation parameters in the protocol uri
handleInstallParameter(args.Uri.ToString());
}
}
Добавление пользовательского протокола активации и параметров в универсальный код ресурса (URI) установки
После настройки приложения для обработки параметров установки можно настроить универсальный код ресурса (URI) скачивания и установки приложения, чтобы содержать уникальные определенные параметры, которые будут переданы в приложение при запуске после нажатия пользователем URI. Универсальный код ресурса (URI) должен содержать:
- Протокол ms-appinstaller, вызывающий установщик приложений.
- Уникальный код активации параметров, указывающий на пользовательский протокол приложения и параметры установки, передаваемые приложению при запуске.
- Пользовательский протокол приложения и параметр и его значение.
В приведенном ниже примере URI я определил пользовательский протокол my-custom-protocol, параметр my-parameter и дал ему значение my-param-value. Когда приложение запускается после нажатия пользовательского кода ресурса (URI), он получит часть строки запроса URI после активации URI, в этом случае это будет my-custom-protocol:?my-parameter=my-param-value.
ms-appinstaller:?source=https://contoso.com/myapp.appinstaller&activationUri=my-custom-protocol:?my-parameter=my-param-value
ms-appinstaller:?source=https://contos.com/myapp.msix&activationUri=my-custom-protocol:?my-parameter=my-param-value
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделе:Отправить и просмотреть отзыв по