Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Al distribuir la aplicación mediante MSIX, puede configurarla de forma que los parámetros de cadena de consulta que defina en el URI de descarga e instalación se pasen a la aplicación cuando se inicie, después de que un usuario haga clic en el URI de descarga e instalación. Esto funciona si es la primera vez que un usuario instala la aplicación o si esta se ha instalado anteriormente. En este artículo se muestra cómo configurar la aplicación empaquetada y su URI de descarga e instalación para aprovechar esta función. Esto puede ser útil si quiere realizar un seguimiento o controlar diferentes instalaciones en función del origen, el tipo de descarga, etc., y funcionará para descargas web, y cualquier otro caso en el que un usuario haga clic en el URI, por ejemplo, desde una campaña de correo electrónico. Para obtener más información, consulte esta entrada de blog.
Configuración de la aplicación para la activación del protocolo
Lo primero que debe hacer es registrar la aplicación para que se inicie mediante un protocolo personalizado que defina. Cuando se invoca este protocolo, la aplicación se inicia y los parámetros especificados en el URI se pasan a los argumentos del evento de activación de la aplicación cuando se inicia. Para registrar el protocolo, agregue una entrada de extensión de protocolo en el nodo Extensiones de la aplicación del archivo appxmanifest.xml de MSIX:
<Application>
...
<Extensions>
<uap:Extension Category="windows.protocol">
<uap:Protocol Name="my-custom-protocol"/>
</uap:Extension>
</Extensions>
...
</Application>
Si usa el Windows Packaging Project, también puede definir un protocolo personalizado mediante el editor de manifiestos predeterminado haciendo doble clic en el archivo package.appxmanifest vaya a la pestaña Declarations y seleccione Protocol en Declaraciones disponibles:
Escritura de código para controlar los parámetros cuando se inicia la aplicación después de la instalación
Deberá implementar código en la aplicación para controlar los parámetros de instalación que se pasarán a la aplicación cuando se inicie. El código de ejemplo siguiente usa el método AppInstance.GetActivatedEventArgs para determinar el tipo de activación usado para crear instancias de una aplicación (también puede controlar los parámetros mediante un método diferente). Cuando la aplicación se inicia o activa con parámetros de cadena de consulta desde un URI de instalación (consulte la definición en la sección siguiente), el tipo de activación será una activación de protocolo tal como se define en el protocolo personalizado declarado en el appxmanifest.xml y el URI de descarga e instalación. Los argumentos del evento de activación serán de tipo ProtocolActivatedEventArgs y es lo que usa el código siguiente:
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());
}
}
Añada su protocolo de activación personalizado y los parámetros al URI de instalación
Una vez configurada la aplicación para controlar los parámetros de instalación, puede personalizar el URI de descarga e instalación de la aplicación para incluir parámetros definidos de forma única que se pasarán a la aplicación al iniciarse, después de que un usuario haga clic en el URI. El URI debe contener lo siguiente:
- Protocolo ms-appinstaller que invoca el Instalador de aplicaciones.
- El parámetro único activationUri que apunta al protocolo personalizado de tu aplicación y los parámetros de instalación que quieres que se pasen a tu aplicación cuando se inicia.
- El protocolo personalizado de la aplicación, así como el parámetro y su valor.
En los URI de ejemplo siguientes, he definido un protocolo personalizado my-custom-protocol, un parámetro my-parameter y le he dado el valor my-param-value. Al iniciar la aplicación después de que un usuario haga clic en el uri, recibirá la parte de la cadena de consulta del uri después de activationUri, en este caso, será 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
Nota:
La capacidad de usar el esquema (protocolo) del URI ms-appinstaller (identificador uniforme de recursos) se puede controlar mediante un profesional de TI (un administrador). Para habilitar ms-appinstaller en la red, establezca la directiva de grupo EnableMSAppInstallerProtocol (/windows/client-management/mdm/policy-csp-desktopappinstaller) en habilitada (consulte Policy CSP - DesktopAppInstaller). Para obtener más información, consulta Instalar aplicaciones de Windows 10 desde una página web.