Anclar la aplicación a la barra de tareas

Ahora puede solicitar mediante programación a los usuarios que anclen la aplicación Win32 o UWP a la barra de tareas, similar a cómo puede anclar la aplicación al menú Inicio. Y puede comprobar si la aplicación está anclada actualmente y si la barra de tareas permite la asignación.

Captura de pantalla de una barra de tareas de Windows 11 que muestra la aplicación anclada.

Importante

Requiere Fall Creators Update: debe tener como destino el SDK 16299 y ejecutar la compilación 16299 o posterior para usar las API de la barra de tareas.

API importantes: Clase TaskbarManager

¿Cuándo debe pedir al usuario que ancle la aplicación a la barra de tareas?

La clase TaskbarManager le permite pedir al usuario que ancle la aplicación a la barra de tareas; el usuario debe aprobar la solicitud. Ha puesto mucho esfuerzo en la compilación de una aplicación estelar, y ahora tiene la oportunidad de pedir al usuario que lo ancle a la barra de tareas. Pero antes de profundizar en el código, estas son algunas cosas que debe tener en cuenta a medida que diseña su experiencia:

  • Crear una experiencia de usuario no disruptiva y descartable fácilmente en la aplicación con una llamada clara a la acción. Evite usar cuadros de diálogo y controles flotantes para este propósito. Se recomienda asignar iconos accesibles o una experiencia de usuario similar, pero no es necesario.
  • Asegúrese de que la aplicación tiene valor al usuario antes de pedir al usuario que lo ancle.
  • No pedir al usuario que ancle la aplicación si el mosaico ya está anclado o el dispositivo no lo admite. (En este artículo se explica cómo determinar si se admite la asignación de anclajes.)
  • No pedir repetidamente al usuario que ancle la aplicación (probablemente se molestará).
  • No llamar a la API de anclaje sin interacción explícita del usuario o cuando la aplicación esté minimizada o no abierta. La aplicación debe estar en primer plano para que el proceso funcione.
  • No usar instaladores para llamar a la API.

Aprobación de la característica de acceso limitado (LAF)

Importante

El anclaje de la barra de tareas es una característica de acceso limitado (consulte la clase LimitedAccessFeatures). Para obtener más información o solicitar un token de desbloqueo, póngase en contacto con Soporte técnico de Microsoft.

1. Comprobación de si existen las API necesarias

UWP

Si la aplicación admite versiones anteriores de Windows 10, debe comprobar si la TaskbarManager clase está disponible. Puede usar el método ApiInformation.IsTypePresent para realizar esta comprobación. Si la TaskbarManager clase no está disponible, evite ejecutar ninguna llamada a las API.

if (ApiInformation.IsTypePresent("Windows.UI.Shell.TaskbarManager"))
{
    // Taskbar APIs exist!
}

else
{
    // Older version of Windows, no taskbar APIs
}

Win32

Si quiere usar TaskbarManager desde la aplicación de escritorio WIn32, deberá comprobar si se admite la aplicación de escritorio está presente. Puede buscar la interfaz de ITaskbarManagerDesktopAppSupportStatics marcador en el TaskbarManager generador de activación para realizar esta comprobación. Si esta interfaz no está disponible, no podrá usar TaskbarManager desde la aplicación de escritorio.

if (winrt::try_get_activation_factory<winrt::Windows::UI::Shell::TaskbarManager, winrt::Windows::UI::Shell::ITaskbarManagerDesktopAppSupportStatics>())
{
    // TaskbarManager desktop app support is available.
}
else
{
    // TaskbarManager desktop app support is not available.
}

2. Comprobar si la barra de tareas está presente y permite anclar

Las aplicaciones de Windows se pueden ejecutar en una amplia variedad de dispositivos; no todos ellos admiten la barra de tareas. En este momento, solo los dispositivos de escritorio admiten la barra de tareas. Además, las aplicaciones pueden solicitar anclaje, pero es posible que no se permita el anclaje en un momento dado. Se recomienda que las aplicaciones comprueben si se permite el anclaje antes de que se muestre la experiencia de usuario para evitar que los usuarios confundan.

Incluso si la barra de tareas está disponible, una directiva de grupo en el equipo del usuario podría deshabilitar el anclaje de la barra de tareas. Por lo tanto, antes de intentar anclar la aplicación, debe comprobar si se admite el anclaje a la barra de tareas. La propiedad TaskbarManager.IsPinningAllowed devuelve true si la barra de tareas está presente y permite anclarla.

// Check if taskbar allows pinning, apps may request pinning, but pinning may not be allowed at any given time. It is suggested that apps check whether pinning is allowed before a UX is surfaced in order to prevent confusing users.

bool isPinningAllowed = TaskbarManager.GetDefault().IsPinningAllowed;

Importante

También hay requisitos que deben cumplirse en el momento en que se realiza realmente la llamada para que se permita la solicitud de anclaje:

  • La aplicación está en primer plano
  • La aplicación tiene una entrada de menú Inicio

Estos requisitos no darán lugar a una excepción si no se cumplen, la solicitud de anclaje solo se denegará. IsPinningAllowed se puede llamar a para determinar si se permitirá una solicitud de anclaje (aviso).

Nota:

Si no quiere anclar la aplicación a la barra de tareas y solo quiere buscar si la barra de tareas está disponible, use lapropiedad TaskbarManager.IsSupported .

3. Compruebe si la aplicación está anclada actualmente a la barra de tareas

Obviamente, no hay ningún punto en pedir al usuario que le permita anclar la aplicación a la barra de tareas si ya está anclada allí. Puedes usar el método TaskbarManager.IsCurrentAppPinnedAsync para comprobar si la aplicación ya está anclada antes de preguntar al usuario.

// Check whether your app is currently pinned
bool isPinned = await TaskbarManager.GetDefault().IsCurrentAppPinnedAsync();

if (isPinned)
{
    // The app is already pinned--no point in asking to pin it again!
}
else
{
    //The app is not pinned.
}

4. Anclar la aplicación

Si la barra de tareas está presente y se permite anclar y su aplicación no está anclada, es posible que desee mostrar una sugerencia sutil para que los usuarios sepan que pueden anclar su aplicación. Por ejemplo, puede programar un icono de anclaje en algún lugar de la interfaz de usuario en el que el usuario pueda hacer clic.

Si el usuario hace clic en su interfaz de usuario de sugerencia de anclaje, llamará al método TaskbarManager.RequestPinCurrentAppAsync. Este método muestra un cuadro de diálogo en el que se pide al usuario que confirme que desea anclar la aplicación a la barra de tareas.

Importante

Se debe llamar desde un subproceso de interfaz de usuario en primer plano; de lo contrario, se producirá una excepción.

// Request to be pinned to the taskbar.
bool isPinned = await TaskbarManager.GetDefault().RequestPinCurrentAppAsync();

Cuadro de diálogo Anclar

Este método devuelve un valor booleano que indica si la aplicación está anclada ahora a la barra de tareas. Si la aplicación ya estaba anclada, el método devuelve true inmediatamente sin mostrar el cuadro de diálogo al usuario. Si el usuario hace clic en "no" en el cuadro de diálogo o si no se permite anclar la aplicación a la barra de tareas, el método devuelve false. De lo contrario, el usuario hizo clic en Sí y la aplicación se ancló y la API devolverá true.

Recursos