Idioma
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.
La aplicación puede registrarse para convertirse en el controlador predeterminado para un tipo de archivo determinado. Tanto las aplicaciones de escritorio de Windows como las aplicaciones winUI pueden registrarse para ser un controlador de archivos predeterminado. Si el usuario elige la aplicación como controlador predeterminado para un tipo de archivo determinado, la aplicación se activará cuando se inicie ese tipo de archivo.
Recomendamos que solo te registres para un tipo de archivo si esperas gestionar todas las aperturas de archivos para ese tipo de archivo. Si la aplicación solo necesita usar el tipo de archivo internamente, no es necesario registrarse para que sea el controlador predeterminado. Si decide registrarse para un tipo de archivo, debe proporcionar al usuario final la funcionalidad que se espera cuando la aplicación esté activada para ese tipo de archivo. Por ejemplo, una aplicación de visor de imágenes puede registrarse para mostrar un archivo .jpg. Para obtener más información sobre las asociaciones de archivos, consulta Guidelines for file types and URIs.
Estos pasos muestran cómo registrarse para un tipo de archivo personalizado, .alsdk y cómo activar la aplicación cuando el usuario inicia un archivo .alsdk.
API importantes
En este tema se usan las SIGUIENTES API:
- Windows.ApplicationModel.Activation.FileActivatedEventArgs
- Windows.UI.Xaml.Application.OnFileActivated
- AppInstance.GetActivatedEventArgs
Paso 1: Especificar el punto de extensión en el manifiesto del paquete
La aplicación recibe eventos de activación solo para las extensiones de archivo enumeradas en el manifiesto del paquete. A continuación se explica cómo indicar que su aplicación administra los archivos con la extensión .alsdk.
En el Explorador de soluciones de , haga doble clic en package.appxmanifest para abrir el diseñador de manifiestos. Seleccione la pestaña Declaraciones y, en la lista desplegable de Declaraciones disponibles , seleccione Asociaciones de Tipos de Archivo y, a continuación, haga clic en Agregar. Consulte identificadores programáticos para obtener más información acerca de los identificadores usados por las asociaciones de archivos.
Esta es una breve descripción de cada uno de los campos que puede rellenar el diseñador de manifiestos:
| Campo | Descripción |
|---|---|
| Nombre para mostrar | Especifique el nombre visible de un grupo de tipos de archivo. El nombre para mostrar se utiliza para identificar el tipo de archivo en Establecer programas predeterminados del Panel de control. |
| Logotipo | Especifique el logotipo que se utilizará para identificar el tipo de archivo en el escritorio y en Establecer programas predeterminados del Panel de control. Si no se especifica ningún logotipo, se usa el logotipo pequeño de la aplicación. |
| Sugerencia informativa | Especifica la sugerencia informativa para un grupo de tipos de archivo. Este texto de información sobre herramientas aparece cuando el usuario mantiene el puntero sobre el icono de un archivo de este tipo. |
| Nombre | Elija un nombre para un grupo de tipos de archivo que compartan el mismo nombre para mostrar, logotipo, sugerencia de información y marcas de edición. Elija un nombre de grupo que pueda permanecer igual en todas las actualizaciones de la aplicación. Nota El nombre debe estar en minúsculas. |
| Tipo de contenido | Especifique el tipo de contenido MIME, como image/jpeg, para un tipo de archivo determinado. Nota importante sobre los tipos de contenido permitidos: Esta es una lista alfabética de tipos de contenido MIME que no se pueden escribir en el manifiesto del paquete porque están reservados o prohibidos: de aplicación/descarga forzada, aplicación/octet-stream, aplicación/desconocida, aplicación/x-msdownload. |
| Tipo de archivo | Especifique el tipo de archivo para el que se va a registrar, precedido por un punto, por ejemplo, ".jpeg". |
- Escriba
alsdkcomo el Nombre. - Escriba
.alsdkcomo tipo de archivo . - Escriba "imágenes\Icon.png" como logotipo.
- Presione Ctrl+S para guardar el cambio en package.appxmanifest.
Los pasos anteriores agregan un elemento Extensión como este al manifiesto del paquete. La categoría windows.fileTypeAssociation indica que la aplicación controla los archivos con la extensión .alsdk.
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name="alsdk">
<uap:Logo>images\icon.png</uap:Logo>
<uap:SupportedFileTypes>
<uap:FileType>.alsdk</uap:FileType>
</uap:SupportedFileTypes>
</uap:FileTypeAssociation>
</uap:Extension>
</Extensions>
Paso 2: Agregar los iconos adecuados
Las aplicaciones que se convierten en el valor predeterminado de un tipo de archivo tienen sus iconos mostrados en varios lugares del sistema. Por ejemplo, estos iconos se muestran en:
- Vista de elementos del Explorador de Windows, menús contextuales y la cinta de herramientas
- Panel de control de programas predeterminados
- Selector de archivos
- Resultados de la búsqueda en la pantalla Inicio
Incluya un icono de 44 x 44 con el proyecto para que el logotipo pueda aparecer en esas ubicaciones. Adapta el aspecto al logotipo del mosaico de la aplicación y utiliza el color de fondo de tu aplicación en lugar de hacer que el icono sea transparente. Haga que el logotipo se extienda hasta el borde sin añadir márgenes. Pruebe los iconos en fondos blancos. Consulta las Directrices para recursos de mosaicos e iconos para obtener más detalles sobre los iconos.
Paso 3: Controlar el evento activado
El controlador de eventos OnFileActivated recibe todos los eventos de activación de archivos.
protected override void OnFileActivated(FileActivatedEventArgs args)
{
// TODO: Handle file activation
// The number of files received is args.Files.Count
// The name of the first file is args.Files[0].Name
}
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs const& args)
{
// TODO: Handle file activation.
auto numberOfFilesReceived{ args.Files().Size() };
auto nameOfTheFirstFile{ args.Files().GetAt(0).Name() };
}
void App::OnFileActivated(Windows::ApplicationModel::Activation::FileActivatedEventArgs^ args)
{
// TODO: Handle file activation
// The number of files received is args->Files->Size
// The name of the first file is args->Files->GetAt(0)->Name
}
Nota
Cuando se inicia a través del contrato de archivo, asegúrate de que el botón Atrás devuelva al usuario a la pantalla que inició la aplicación y no al contenido anterior de la aplicación.
Nota
En una aplicación WinUI, en App.OnLaunched (o de hecho en cualquier momento) puedes llamar a (AppInstance.GetActivatedEventArgs) para recuperar los argumentos de eventos activados y comprobar cómo se activó la aplicación. Consulta la migración de la funcionalidad del ciclo de vida de la aplicación para obtener más información sobre las diferencias de ciclo de vida entre las aplicaciones UWP y WinUI.
Te recomendamos que crees un nuevo Frame de XAML para cada evento de activación que abra una nueva página. De este modo, la pila de navegación del nuevo Frame de XAML no contiene ningún contenido anterior que la aplicación pudiera tener en la ventana actual en el momento de la suspensión. Si decides utilizar un único Frame de XAML tanto para el inicio como para los contratos de archivos, debes borrar las páginas del historial de navegación del Frame antes de navegar a una nueva página.
Cuando la aplicación se inicia a través de la activación de archivos, debes considerar la posibilidad de incluir la interfaz de usuario que permite al usuario volver a la página superior de la aplicación.
Observaciones
Los archivos que recibe podrían provenir de un origen que no es de confianza. Se recomienda validar el contenido de un archivo antes de tomar medidas en él.
Contenido relacionado
Windows developer