API de icono principal

Las API de icono principal permiten comprobar si la aplicación está anclada actualmente a Inicio y solicitar anclar el icono principal de la aplicación.

Importante

Requiere Creators Update: debe tener como destino el SDK 15063 y ejecutar la compilación 15063 o posterior para usar las API de icono principal.

API importantes: Clase StartScreenManager, ContainsAppListEntryAsync, RequestAddAppListEntryAsync

Cuándo usar las API de icono principal

Pones mucho esfuerzo en diseñar una gran experiencia para el icono principal de la aplicación y ahora tienes la oportunidad de pedir al usuario que lo ancle a Inicio. Pero antes de profundizar en el código, estas son algunas cosas que debe tener en cuenta al diseñar su experiencia:

  • Crea una experiencia de usuario no disruptiva y descartable fácilmente en tu aplicación con una llamada clara "Anclar icono dinámico" a la acción.
  • Explique claramente el valor del icono dinámico de la aplicación antes de pedir al usuario que lo ancle.
  • No pidas a un usuario que ancle el icono de la aplicación si el icono ya está anclado o el dispositivo no lo admite (sigue más información).
  • No pidas repetidamente al usuario que ancle el icono de la aplicación (probablemente se molestará).
  • No llames a la API de anclaje sin interacción explícita del usuario ni cuando la aplicación esté minimizada o no abierta.

Comprobación de si la API existe

Si la aplicación admite versiones anteriores de Windows 10, debes comprobar si estas API de icono principal están disponibles. Para ello, use ApiInformation. Si las API de icono principal no están disponibles, evite ejecutar ninguna llamada a las API.

if (ApiInformation.IsTypePresent("Windows.UI.StartScreen.StartScreenManager"))
{
    // Primary tile API's supported!
}
else
{
    // Older version of Windows, no primary tile API's
}

Compruebe si Start admite la aplicación.

Según el menú Inicio actual y el tipo de aplicación, es posible que no se admita anclar la aplicación a la pantalla Inicio actual. Solo el escritorio y el soporte móvil anclan el icono principal a Inicio. Por lo tanto, antes de mostrar cualquier interfaz de usuario de anclaje o ejecutar cualquier código de anclaje, primero debe comprobar si la aplicación es compatible con la pantalla inicio actual. Si no se admite, no pida al usuario que ancle el icono.

// Get your own app list entry
// (which is always the first app list entry assuming you are not a multi-app package)
AppListEntry entry = (await Package.Current.GetAppListEntriesAsync())[0];

// Check if Start supports your app
bool isSupported = StartScreenManager.GetDefault().SupportsAppListEntry(entry);

Compruebe si está anclado actualmente.

Para averiguar si el icono principal está anclado actualmente a Start, use el método ContainsAppListEntryAsync .

// Get your own app list entry
AppListEntry entry = (await Package.Current.GetAppListEntriesAsync())[0];

// Check if your app is currently pinned
bool isPinned = await StartScreenManager.GetDefault().ContainsAppListEntryAsync(entry);

Anclar el icono principal

Si el icono principal no está anclado actualmente y el icono es compatible con Start, es posible que quiera mostrar una sugerencia a los usuarios que pueden anclar el icono principal.

Nota

Debes llamar a esta API desde un subproceso de interfaz de usuario mientras la aplicación está en primer plano, y solo debes llamar a esta API después de que el usuario haya solicitado intencionadamente que se ancle el icono principal (por ejemplo, después de que el usuario haga clic en sí en la sugerencia sobre anclar el icono).

Si el usuario hace clic en el botón para anclar el icono principal, llamaría al método RequestAddAppListEntryAsync para solicitar que el icono se ancle a Inicio. Se mostrará un cuadro de diálogo que pide al usuario que confirme que quiere que el icono esté anclado a Inicio.

Esto devolverá un valor booleano que representa si el icono ahora está anclado a Inicio. Si el icono ya estaba anclado, esto devolverá inmediatamente true sin mostrar el cuadro de diálogo al usuario. Si el usuario hace clic en no en el cuadro de diálogo o no se admite anclar el icono a Inicio, devolverá false. De lo contrario, el usuario hizo clic en Sí y el icono se ancló y la API devolverá true.

// Get your own app list entry
AppListEntry entry = (await Package.Current.GetAppListEntriesAsync())[0];

// And pin it to Start
bool isPinned = await StartScreenManager.GetDefault().RequestAddAppListEntryAsync(entry);

Recursos