Anclar la aplicación a la barra de tareasPin your app to the taskbar

Puede anclar su propia aplicación mediante programación a la barra de tareas, igual que puede anclar la aplicación al menú Inicio.You can programmatically pin your own app to the taskbar, just like you can pin your app to the Start menu. También puede comprobar si la aplicación está anclada actualmente y si la barra de tareas permite el anclaje.And you can check whether your app is currently pinned, and whether the taskbar allows pinning.

Captura de pantalla de una barra de tareas de Windows 10 que muestra la aplicación anclada allí.

Importante

Requiere Fall Creators Update: debe tener como destino el SDK 16299 y ejecutar la compilación 16299 o superior para usar las API de la barra de tareas.Requires Fall Creators Update: You must target SDK 16299 and be running build 16299 or higher to use the taskbar APIs.

API importantes: clase TaskbarManagerImportant APIs: TaskbarManager class

¿Cuándo se debe pedir al usuario que ancle la aplicación a la barra de tareas?When should you ask the user to pin your app to the taskbar?

La clase TaskbarManager permite pedirle al usuario que ancle la aplicación a la barra de tareas. el usuario debe aprobar la solicitud.The TaskbarManager class lets you ask the user to pin your app to the taskbar; the user must approve the request. Puede crear una gran cantidad de esfuerzo en la creación de una aplicación estelar y ahora tiene la oportunidad de pedirle al usuario que la ancle en la barra de tareas.You put a lot of effort into building a stellar app, and now you have the opportunity to ask the user to pin it to taskbar. Pero antes de profundizar en el código, aquí tiene algunas cosas que debe tener en cuenta al diseñar su experiencia:But before we dive into the code, here are some things to keep in mind as you are designing your experience:

  • Cree una experiencia de usuario no disruptiva y fácilmente descartable en la aplicación con una llamada a la acción "anclar a la barra de tareas".Do craft a non-disruptive and easily dismissible UX in your app with a clear "Pin to taskbar" call to action. Evite el uso de cuadros de diálogo y controles flotantes para este fin.Avoid using dialogs and flyouts for this purpose.
  • Explique claramente el valor de la aplicación antes de pedir al usuario que la ancle.Do clearly explain the value of your app before asking the user to pin it.
  • No pida a un usuario que ancle su aplicación si el icono ya está anclado o el dispositivo no lo admite.Don't ask a user to pin your app if the tile is already pinned or the device doesn’t support it. (En este artículo se explica cómo determinar si se admite el anclaje).(This article explains how to determine whether pinning is supported.)
  • No pida al usuario que ancle su aplicación repetidamente (probablemente se molestará).Don't repeatedly ask the user to pin your app (they will probably get annoyed).
  • No llame a la API de PIN sin interacción explícita del usuario o cuando la aplicación se minimice o no se abra.Don't call the pin API without explicit user interaction or when your app is minimized/not open.

1. Compruebe si existen las API necesarias1. Check whether the required APIs exist

Si la aplicación es compatible con versiones anteriores de Windows 10, debe comprobar si la clase TaskbarManager está disponible.If your app supports older versions of Windows 10, you need to check whether the TaskbarManager class is available. Puede usar el método ApiInformation. IsTypePresent para realizar esta comprobación.You can use the ApiInformation.IsTypePresent method to perform this check. Si la clase TaskbarManager no está disponible, evite ejecutar llamadas a las API.If the TaskbarManager class isn't available, avoid executing any calls to the APIs.

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

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

2. Compruebe si la barra de tareas está presente y permite el anclaje2. Check whether taskbar is present and allows pinning

Las aplicaciones de Windows se pueden ejecutar en una amplia variedad de dispositivos. no todas ellas admiten la barra de tareas.Windows apps can run on a wide variety of devices; not all of them support the taskbar. En este momento, solo los dispositivos de escritorio admiten la barra de tareas.Right now, only Desktop devices support the taskbar.

Incluso si la barra de tareas está disponible, es posible que una directiva de grupo en el equipo del usuario deshabilite el anclaje de la barra de tareas.Even if the taskbar is available, a group policy on the user's machine might disable taskbar pinning. Por lo tanto, antes de intentar anclar la aplicación, debe comprobar si se admite el anclaje en la barra de tareas.So, before you attempt to pin your app, you need to check whether pinning to the taskbar is supported. La propiedad TaskbarManager. IsPinningAllowed devuelve true si la barra de tareas está presente y permite el anclaje.The TaskbarManager.IsPinningAllowed property returns true if the taskbar is present and allows pinning.

// Check if taskbar allows pinning (Group Policy can disable it, or some device families don't have taskbar)
bool isPinningAllowed = TaskbarManager.GetDefault().IsPinningAllowed;

Nota

Si no quiere anclar la aplicación a la barra de tareas y solo desea averiguar si la barra de tareas está disponible, use la propiedad TaskbarManager. IsSupported.If you don't want to pin your app to the taskbar and just want to find out whether the taskbar is available, use the TaskbarManager.IsSupported property.

3. Compruebe si la aplicación está anclada actualmente a la barra de tareas3. Check whether your app is currently pinned to the taskbar

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í.Obviously, there's no point in asking the user to let you pin the app to the taskbar if it's already pinned there. Puede usar el método TaskbarManager. IsCurrentAppPinnedAsync para comprobar si la aplicación ya está anclada antes de preguntar al usuario.You can use the TaskbarManager.IsCurrentAppPinnedAsync method to check whether the app is already pinned before asking the user.

// 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. Ancle la aplicación4. Pin your app

Si la barra de tareas está presente y se permite el anclaje y la aplicación no está anclada actualmente, es posible que quiera mostrar una sugerencia sutil para que los usuarios sepan que pueden anclar la aplicación.If the taskbar is present and pinning is allowed and your app currently isn't pinned, you might want to show a subtle tip to let users know that they can pin your app. Por ejemplo, puede mostrar un icono de anclaje en algún lugar de la interfaz de usuario en el que el usuario pueda hacer clic.For example, you might show a pin icon somewhere in your UI that the user can click.

Si el usuario hace clic en la interfaz de usuario de sugerencia de PIN, llamará al método TaskbarManager. RequestPinCurrentAppAsync.If the user clicks your pin suggestion UI, you would then call the TaskbarManager.RequestPinCurrentAppAsync method. Este método muestra un cuadro de diálogo que pide al usuario que confirme que desea que la aplicación esté anclada a la barra de tareas.This method displays a dialog that asks the user to confirm that they want your app pinned to the taskbar.

Importante

Se debe llamar a este método desde un subproceso de interfaz de usuario de primer plano; de lo contrario, se producirá una excepción.This must be called from a foreground UI thread, otherwise an exception will be thrown.

// 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.This method returns a boolean value that indicates whether your app is now pinned to the taskbar. Si la aplicación ya está anclada, el método devuelve inmediatamente true sin mostrar el cuadro de diálogo al usuario.If your app was already pinned, the method immediately returns true without showing the dialog to the user. Si el usuario hace clic en "no" en el cuadro de diálogo o no se permite anclar la aplicación a la barra de tareas, el método devuelve false.If the user clicks "no" on the dialog, or pinning your app to the taskbar isn't allowed, the method returns false. De lo contrario, el usuario hizo clic en sí y la aplicación estaba anclada, y la API devolverá True.Otherwise, the user clicked yes and the app was pinned, and the API will return true.

RecursosResources