Share via


Interfaz y experiencia del usuario

Las ventanas redimensionables ofrecen a los usuarios un mayor control sobre el modo en que usan tu aplicación. Las nuevas características te permiten sacar más partido al icono de la aplicación. Además, las actualizaciones que hemos realizado en la búsqueda, el uso compartido y los accesos permiten ofrecer una experiencia general más uniforme para los usuarios.

Novedades o actualizaciones de Windows 8.1

  • Ventanas redimensionables
  • Actualizaciones en los iconos
  • Actualizaciones en la búsqueda
  • Actualizaciones en el uso compartido
  • Funcionamiento de los accesos en todas las pantallas
  • Integración con personas y eventos
  • Síntesis de voz
  • Actualizaciones de la administración de tareas en segundo plano
  • Compatibilidad con la aplicación de alarma en la pantalla de bloqueo
  • Actualizaciones en la programación de elementos de trabajo

Ventanas redimensionables

[Consigue ahora las muestras de vistas de aplicación, vistas múltiples y del administrador de proyecciones].

Windows 8.1 incorpora varios cambios en el tamaño y la posición de las ventanas. Como desarrollador de aplicaciones para Windows 8.1, debes tener en cuenta estos puntos esenciales:

  • Windows 8.1 no tiene estados de vista de ancho fijo. Ahora, los usuarios pueden cambiar el tamaño de las aplicaciones continuamente hasta un ancho mínimo. (El ancho mínimo predeterminado de una aplicación es de 500 píxeles). De este modo, las aplicaciones ya no tienen los estados de vista acoplada y de relleno, sino que deberás desarrollar la aplicación para que resulte funcional y tenga un diseño atractivo en cualquier tamaño hasta llegar al mínimo.

    Nota  La vista acoplada en Windows 8 tenía un ancho de 320 píxeles. El ancho mínimo predeterminado de 500 píxeles es mayor que la vista acoplada de Windows 8.

  • Si tu aplicación funciona bien en tamaños más pequeños y quieres animar a los usuarios a que mantengan tu aplicación en pantalla, puedes cambiar el ancho mínimo a 320 píxeles.

  • Los usuarios pueden tener más de dos aplicaciones en pantalla a la vez. Por tanto, es posible que tu aplicación aparezca entre otras dos aplicaciones y no se sitúe junto al borde izquierdo o derecho de la pantalla.

  • Una sola aplicación puede abrir más de una ventana a la vez.

  • Una aplicación puede abrir otra aplicación. Cuando esto ocurre, las dos aplicaciones suelen dividir la pantalla en dos partes iguales si hay suficiente espacio. Sin embargo, puedes cambiar este comportamiento para que la aplicación que se inicia sea más ancha o más estrecha que la aplicación original, o incluso para que sustituya a la aplicación original en la pantalla. Para cambiar el comportamiento predeterminado, usa la propiedad DesiredRemainingView.

Las aplicaciones deben llenar el alto de la pantalla, como hacían en Windows 8. El alto mínimo predeterminado de una aplicación es de 768 píxeles.

Requisitos de píxeles para el tamaño mínimo estrecho y el tamaño mínimo predeterminado de una aplicación

Diseñar instrucciones para ventanas redimensionables

Cuando diseñes una aplicación para Windows 8.1, tienes que:

  • Asegurarte de que el diseño y los controles de la aplicación se pueden ajustar a la escala del tamaño mínimo. Concretamente, ten en cuenta cómo afectará el tamaño de la aplicación a estos controles:

  • Diseña tu aplicación de forma que haga un uso eficaz del espacio en pantallas grandes y tenga un diseño dinámico que se redistribuya automáticamente. No dejes espacios amplios vacíos.

  • Si cambias el ancho mínimo a 320 píxeles, haz que la aplicación se ajuste de este modo cuando su ancho sea estrecho (entre 320 y 500 píxeles de ancho):

Hay disponibles muestras de diseño adicionales para ventanas que se redimensionan a 320 píxeles de ancho y ventanas que son más altas que anchas. Para obtener más información sobre el uso de accesos en una aplicación independientemente del tamaño de la aplicación, consulta Funcionamiento de los accesos en todas las pantallas.

Configuración del ancho mínimo

Si quieres cambiar el ancho mínimo de una aplicación en lugar de usar el predeterminado de 500 píxeles, debes especificar el atributo MinWidth del elemento ApplicationView en el manifiesto de la aplicación.

<Application>
   <VisualElements>
      <ApplicationView MinWidth=”width320” />
   </VisualElements>
</Application>

Para obtener más información sobre el manifiesto de la aplicación, consulta Manifiesto del paquete de la aplicación.

Actualizaciones en la clase ApplicationView

En Windows 8.1, el espacio de nombres Windows.UI.ViewManagement tiene estas nuevas enumeraciones:

Y la clase ApplicationView tiene estas nuevas propiedades:

ApplicationView también tiene estos nuevos métodos:

En Windows 8.1, estos miembros están desusados:

  • La propiedad ApplicationView.Value: no es válida porque las aplicaciones ya no tienen estados de vista de ancho fijo. En su lugar, puedes usar la propiedad Orientation para obtener la orientación de la ventana de la aplicación, y las propiedades AdjacentToLeftDisplayEdge, AdjacentToRightDisplayEdge y IsFullScreen para obtener la posición de la aplicación.

  • El método ApplicationView.TryUnsnap: no es válido porque las aplicaciones ya no tienen un estado acoplado específico y porque el ancho mínimo predeterminado es de 500 píxeles.

  • La enumeración ApplicationViewState: no es válida porque es posible cambiar el tamaño de las aplicaciones de forma continua y ya no tienen estados de vista de ancho fijo.

Actualizaciones en los iconos

[Obtén las muestras de iconos de la aplicación y notificaciones e iconos secundarios ahora.]

Windows 8.1 presenta estos cambios en los iconos y en la forma de trabajar con ellos.

Nuevos tamaños de icono

En Windows 8 había dos tamaños de icono:

  • Iconos cuadrados (150×150 píxeles a una meseta de escalado de 1x).
  • Iconos anchos (310×150 píxeles a una meseta de escalado de 1x).

En Windows 8.1 hay otros dos tamaños de icono:

  • Iconos pequeños (70×70 píxeles a una meseta de escalado de 1x).
  • Iconos grandes (310×310 píxeles a una meseta de escalado de 1x).

Como ahora tres de los cuatro tipos de plantillas son cuadrados, los iconos que solían llamarse "cuadrados" en Windows 8 (150×150 a una meseta de 1x) ahora se llaman iconos "medianos". Así pues, el conjunto completo está formado por iconos pequeños, medianos, anchos y grandes. Aquí tienes ejemplos de los cuatro.

Ejemplo de los cuatro tamaños de iconos en la pantalla Inicio

Un usuario puede encajar cuatro iconos pequeños en el espacio de un icono mediano. Los iconos pequeños no admiten notificaciones de iconos dinámicos, pero sí admiten notificaciones informativas. Un icono grande ocupa el mismo espacio que dos iconos anchos, y admite notificaciones de icono en directo, al igual que los tamaños de icono de Windows 8.

Nueva convención de nomenclatura para las plantillas de icono

Además de los nuevos tamaños de icono, hemos actualizado la convención de nomenclatura de las plantillas de icono de Windows 8. La nueva convención de nomenclatura usa tamaños de píxel absolutos a una meseta de escalado de 1×. Los cuatro tamaños de icono se asignan a los nuevos nombres del siguiente modo, con muchas plantillas en cada categoría:

  • Pequeño = Square70x70
  • Mediano = Square150x150
  • Ancho = Wide310x150
  • Grande = Square310x310

Del mismo modo, el atributo SmallLogo ahora se llama Square30x30Logo en el manifiesto de la aplicación.

Se ha cambiado el nombre de todas las plantillas de icono existentes usando la nueva convención de nomenclatura.

Nombre anterior Nuevo nombre Ejemplo
TileSquare* TileSquare150x150* TileSquareImage (nombre anterior)/TileSquare150x150Image (nuevo nombre)
TileWidexxx TileWide310x150xxx TileWideImageAndText01 (nombre anterior)/TileWide310x150ImageAndText01 (nuevo nombre)

 

Por razones de compatibilidad, se siguen reconociendo los nombres anteriores. No obstante, usa los nuevos nombres en todas las nuevas aplicaciones que desarrolles.

Cambios relacionados con los iconos en el manifiesto de la aplicación

En el manifiesto de la aplicación se declaran las propiedades predeterminadas del icono principal de la aplicación—: los tamaños que admite, el nombre para mostrar y —el color del icono.

Admitir nuevos tamaños de icono

En Windows 8, tenías que especificar un activo de icono ancho en el manifiesto de la aplicación para admitir un icono ancho en la aplicación. En Windows 8.1, tienes que especificar un activo de icono grande en el manifiesto para admitir un icono grande (Square310x310).

Nota  La aplicación solo puede admitir un icono grande si también admite un icono ancho.

Todas las aplicaciones admiten iconos medianos (Square150x150) y pequeños (Square70x70). También puedes incluir activos de iconos pequeños en el manifiesto. Si la aplicación no proporciona una imagen de icono pequeño, ya sea realizando ajustando a escala la propia imagen o proporcionando un activo independiente, Windows 8.1 ajustará a escala la imagen de icono mediano automáticamente.

Al igual que en Windows 8, te recomendamos que proporciones activos distintos para cada una de las cuatro mesetas de escalado (0,8x, 1x, 1,4x, y 1,8x) por cada tamaño de icono que admitas. De esta forma, los iconos siempre se mostrarán nítidos y sin artefactos producidos por el escalado. También puedes proporcionar activos de imagen para el tema de alto contraste, para una mejor compatibilidad con la accesibilidad.

Visualización del nombre de la aplicación para distintos tamaños de icono

En Windows 8, usabas el manifiesto de la aplicación para especificar los tamaños de icono que se mostraban en el nombre de la aplicación. Esto se sigue haciendo en Windows 8.1, pero hay un nuevo formato para ello. Ten en cuenta que no puedes mostrar el nombre de la aplicación en el tamaño de icono pequeño (Square70x70).

Declaración de un tamaño de anclado predeterminado

En Windows 8, si una aplicación admitía un icono ancho, se anclaba a Inicio como un icono ancho; si no admitía este tipo de icono, se anclaba como un icono mediano. En Windows 8.1, puedes invalidar esto si lo prefieres, y declarar que el tamaño de anclado predeterminado sea cualquiera de los dos, un icono mediano o uno ancho (pero no el icono pequeño ni el grande). Pero no olvides que, en Windows 8.1, la aplicación no se anclará automáticamente a Inicio en la instalación. Esta se muestra en la vista Todas las aplicaciones y a partir de ahí el usuario debe elegir expresamente que desea anclar la aplicación a Inicio.

Cambios en el esquema del manifiesto de la aplicación

Ahora puedes especificar en tu manifiesto un espacio de nombres adicional, "https://schemas.microsoft.com/appx/2013/manifest", para incluir los elementos de esquema que declaran la nueva funcionalidad de la que hemos hablado. En el siguiente ejemplo se muestran algunos de los atributos nuevos y con el nombre cambiado que verás en el manifiesto. Observa el activo de icono grande incluido en el elemento DefaultTile, que también declara expresamente un tamaño predeterminado preferido. La aplicación también opta por mostrar su nombre de aplicación solo en los iconos mediano y ancho, y no en el icono grande.

<Package 
    xmlns="https://schemas.microsoft.com/appx/2010/manifest" 
    xmlns:wb="https://schemas.microsoft.com/appx/2013/manifest">
    
...

<wb:VisualElements 
    DisplayName="Your app name" 
    Description="App description" 
    BackgroundColor="#464646" 
    ForegroundText="light" 
    ToastCapable="true" 
    Square150x150Logo="Assets\Medium150x150Tile.png" 
    Square30x30Logo="Assets\APVLogo.png">
    
    <wb:DefaultTile 
        Square70x70Logo="Assets\Small70x70Tile.png" 
        Wide310x150Logo="Assets\Wide310x150Tile.png" 
        Square310x310Logo="Assets\Large310x310Tile.png" 
        ShortName="App" 
        DefaultSize="square150x150Logo">
        
        <wb:ShowNameOnTiles>
            <wb:ShowOn Tile="square150x150Logo"/>
            <wb:ShowOn Tile="wide310x150Logo"/> 
        </wb:ShowNameOnTiles>
    </wb:DefaultTile>
    
    <wb:LockScreen 
        Notification="badgeAndTileText" 
        BadgeLogo="Assets\badge.png"/>
    
    <wb:SplashScreen Image="Assets\SplashScreen.png"/>
</wb:VisualElements>

Cambios en las notificaciones de icono

Cuando envíes una notificación de icono, recuerda que la aplicación podría recibir la notificación mientras se ejecuta en Windows 8.1 o en Windows 8. Debido a que solo Windows 8.1 es capaz de reconocer los nuevos nombres de las plantillas existentes, se agregó un atributo fallback al esquema. Al incluir el atributo fallback, la carga de la notificación puede especificar una plantilla de Windows 8.1 junto con una plantilla de Windows 8, en caso de que la notificación se reciba en un sistema Windows 8. Para usar los nuevos nombres de plantilla y el atributo fallback, incluye el nuevo atributo version, establecido en un valor de 2, en el elemento visual como se muestra aquí.

<tile>
  <visual version="2">
    <binding template="TileSquare150x150Image" fallback="TileSquareImage" branding="None">
      <image id="1" src="Assets/Images/w6.png"/>
    </binding>
    <binding template="TileWide310x150Image" fallback="TileWideImage" branding="None">
      <image id="1" src="Assets/Images/sq5.png"/>
    </binding>
    <binding template="TileSquare310x310Image" branding="None">
      <image id="1" src="Assets/Images/sq6.png"/>
    </binding>
  </visual>
</tile>

Ten en cuenta que no puedes usar el atributo fallback con iconos grandes porque estos no existían en Windows 8. Las notificaciones en Windows 8 funcionan bien en Windows 8.1 sin necesidad de realizar ninguna modificación, pero no pueden usar el tamaño de icono grande.

Nota  Cualquier plantilla de icono grande (Square310x310) incluida en la carga deberá ser el último enlace de la lista. El sistema Windows 8 detiene el análisis de una notificación si encuentra un enlace que no reconoce el nombre de la plantilla o el de la devolución de llamada. Así que siempre se detendrá cuando encuentre un enlace de 310×310.

Especificar los tamaños de icono para la cola de notificaciones

En Windows 8, cuando habilitabas la cola de notificaciones, se habilitaba tanto en el icono mediano como en el icono ancho. Windows 8.1 agrega métodos a la clase TileUpdater que permiten habilitar la cola de notificaciones para determinados tamaños de icono.

Nuevos tamaños de icono y logotipos alternativos en iconos secundarios

En Windows 8.1, el control flotante que los usuarios ven cuando anclan contenido como un icono secundario les permite recorrer todos los tamaños y aspectos de icono secundario que hay disponibles y elegir entre ellos. El icono secundario admite cualquier tamaño de icono que admita el icono de su aplicación. Si no especificas ninguna imagen de icono pequeño para el icono secundario, Windows 8.1 reduce la escala de la imagen de icono cuadrado para usarla.

Además de la imagen de icono secundario predeterminada, puedes proporcionar hasta tres versiones alternativas de cada tamaño de icono, con la posibilidad de un máximo de 12 versiones. También puedes especificar, mediante el método AlternateVisualElements, un logotipo pequeño alternativo para cada uno de los tres tamaños de icono (cuadrado, ancho, grande) que admite logotipos.

Mayor precisión de compatibilidad con cadenas fonéticas para clasificar iconos secundarios

En algunos idiomas basados en caracteres, como el japonés, la interfaz de usuario se clasifica siguiendo la representación fonética de los caracteres que componen el nombre para mostrar de la aplicación. Esta representación fonética es una cadena independiente del nombre para mostrar. Al anclar un icono secundario, los usuarios pueden especificar un nombre para mostrar para ese icono en el control flotante de anclado, pero no pueden especificar una representación fonética. Windows intenta interpretar la cadena fonética, pero a veces se equivoca.

No obstante, en ocasiones las aplicaciones conocen la cadena fonética adecuada, porque el usuario la definió a través de un control personalizado que proporciona la aplicación. En Windows 8.1, una aplicación puede pasar esa cadena a Windows a través de la nueva propiedad SecondaryTile.PhoneticName. Ten en cuenta que esta cadena fonética del nombre está ligada al nombre para mostrar predeterminado, asociado al icono secundario. De modo que, si el usuario cambia el nombre para mostrar a través del control flotante de anclado, se usará la interpretación que hace el sistema de la representación fonética.

Actualizaciones en la búsqueda

[Consigue ahora la muestra del control SearchBox].

Windows 8.1 presenta un nuevo control de cuadro de búsqueda para ayudarte a proporcionar resultados de búsqueda: Windows.UI.Xaml.Controls.SearchBox para aplicaciones que usan XAML y WinJS.UI.SearchBox para aplicaciones que usan JavaScript.

Ahora tus aplicaciones pueden incluir el cuadro de búsqueda como un elemento en el marcado. El nuevo control admite la aplicación completa de plantillas y estilos.

En Windows 8.1, la experiencia de búsqueda de la aplicación está controlada por completo por la aplicación. El cuadro de búsqueda se integra con el contrato de Buscar para mejorar la experiencia y permitir una personalización completa, de modo que tus aplicaciones ofrezcan experiencias adaptadas a las necesidades de los usuarios.

El cuadro de búsqueda admite sugerencias de búsqueda y resultados proporcionados por la aplicación, un historial de búsquedas específico de la aplicación y compatibilidad total para interacciones táctiles, de teclado y de mouse.

El diseño del cuadro de búsqueda tiene este aspecto.

Control del cuadro de búsqueda dentro de la aplicación para aplicaciones de la Tienda Windows

Aquí mostramos resultados de búsqueda de ejemplo en el control de cuadro de búsqueda.

Resultados del cuadro de búsqueda de ejemplo para MSFT.

El control del cuadro de búsqueda admite la integración con el editor de métodos de entrada (IME).

Control de búsqueda en aplicación con el IME

Las sugerencias se actualizan a medida que el usuario escribe cada letra con un IME. Entre las sugerencias se incluyen caracteres chinos ideográficos basados en la entrada fonética parcial. La interfaz de usuario de candidatos del IME no oculta el control flotante de sugerencias de búsqueda. El cuadro de búsqueda admite el uso de la entrada de teclado para navegar por el cuadro de texto, la lista de candidatos del IME y las sugerencias de búsqueda.

Actualizaciones en el uso compartido

[Obtén las muestras del uso compartido del origen de contenido y del uso compartido del destino de contenido ahora.]

Windows 8.1 lleva estos cambios a la experiencia de uso compartido y el modo en que se usa el contrato para contenido compartido en las aplicaciones.

Adición de nuevos formatos de datos a DataPackage

En Windows 8.1, las aplicaciones de origen para el contrato de Compartir pueden proporcionar varias formas de volver al contenido que se está compartiendo. Windows 8.1 divide el formato Uri en dos nuevos formatos de datos en DataPackage e introduce cuatro nuevas propiedades fuertemente tipadas en DataPackagePropertySet. Para DataPackage, el formato Uri está desusado y se reemplazó por los formatos WebLink y ApplicationLink.

WebLink se comparte cuando el usuario no ha seleccionado nada, de modo que la aplicación de origen comparte una selección implícita del contenido mostrado. Al rellenar este formato, la aplicación de origen comparte el contenido de la página actual como un identificador uniforme de recursos (URI). El vínculo compartido hace referencia a la página web que el usuario está viendo, por lo que este formato siempre comienza por http o https.

ApplicationLink también se comparte cuando el usuario no ha seleccionado nada, así que la aplicación de origen también comparte una selección implícita del contenido mostrado. Al rellenar este formato, la aplicación de origen comparte el contenido de la página actual como un URI. El URI compartido tiene un esquema administrado por la aplicación de origen. Cuando la aplicación de origen se activa con este protocolo de URI, muestra el mismo contenido que están viendo los usuarios. Este formato representa el contenido compartido y ofrece una forma de volver al contenido mediante un protocolo de la aplicación.

Los formatos WebLink y ApplicationLink no son exclusivos. WebLink establece un vínculo al contenido en Internet y ApplicationLink establece un vínculo al contenido en una aplicación. Por ejemplo, una aplicación de noticias puede tener contenido en ambos formatos, con un URI para que el usuario vuelva al artículo en la aplicación, o para que el usuario vuelva al mismo artículo en un sitio web. La aplicación de destino decide cómo administrar el URI. Por ejemplo, es posible que la aplicación de correo use el formato WebLink, porque permite enviar el vínculo a Internet y usarlo desde un sistema que no sea Windows. Pero es posible que la aplicación de lectura use el formato ApplicationLink, de manera que reactiva la aplicación de origen y lleva al usuario de vuelta al contenido original.

ContentSourceWebLink es una propiedad complementaria que puedes usar para atribuir el contenido compartido. Se comparte cuando la aplicación proporciona un vínculo web al contenido que se está compartiendo. Cuando el usuario realiza una selección explícita, el formato WebLink no se rellena porque el valor para el formato WebLink no es el mismo que el de la selección del usuario. Rellenar esta información no significa que la página web sea la selección del usuario, solo significa que el contenido procede de allí.

ContentSourceApplicationLink es la propiedad complementaria secundaria que puedes usar para atribuir el contenido compartido. Se comparte cuando la aplicación considera que es útil para el usuario volver al contenido que se está mostrando en la aplicación en ese momento. Cuando el usuario realiza una selección, el formato ApplicationLink no se rellena porque el valor para el formato ApplicationLink no es el mismo que el de la selección del usuario. Rellenar esta información no significa que el vínculo profundo a la aplicación represente la selección del usuario, solo significa que el contenido procede de allí.

Por ejemplo, un usuario está leyendo un artículo en una aplicación de lectura. El usuario selecciona una cita y la comparte en OneNote. Para atribuir la cita al artículo, la aplicación de lectura no usa el formato WebLink o ApplicationLink porque el artículo no equivale a la cita que se está compartiendo. Por ese motivo, en lugar de ello, la aplicación usa las propiedades ContentSourceWebLink y ContentSourceApplicationLink. OneNote agrega el texto seleccionado junto con la atribución de origen. Después, el usuario puede leer en OneNote la cita y volver a la aplicación de lectura o a la página web para leer el contexto de la cita.

Mejora de la capacidad de respuesta del recurso compartido

En Windows 8.1, las aplicaciones que usan el contrato de Compartir pueden mejorar la capacidad de respuesta si descartan mediante programación el panel de elementos compartidos.

Llama al nuevo método DismissUI para cerrar el panel de elementos compartidos. Llamar a DismissUI es lo mismo que si el usuario pulsara fuera del panel de elementos compartidos para rechazarlo. Si la operación de compartir tarda mucho, la aplicación sigue ejecutándose. Si la operación no tarda mucho en ejecutarse, tiene 10 segundos para ejecutarse antes de que termine.

Actualmente, la aplicación de destino no puede moverse fuera de la pantalla. Así que, cuando se inicia una operación de compartir, la aplicación suele mostrar un indicador de progreso y hace esperar al usuario hasta que se complete la operación (aunque no sea necesaria más interacción del usuario para completar la operación). Aunque realmente no hay ningún peligro en que el usuario descarte el control flotante con una pulsación ligera, los usuarios suelen pensar que si lo descartan antes de que se complete la operación de compartir podría producirse una pérdida de datos. Por ese motivo, no suelen hacerlo. DismissUI permite a tu aplicación descartar el control flotante automáticamente.

Nombre de familia de paquete

En Windows 8.1, las aplicaciones de origen para el contrato de Compartir pueden proporcionar un nombre de familia de paquete para las aplicaciones de destino, de manera que estas puedan ofrecer una experiencia de devolución de llamada al iniciar la aplicación especificada en ApplicationLink.

El nombre de familia de paquete es el identificador único de un paquete de aplicaciones. Cuando una aplicación de origen asigna este identificador a la aplicación de destino, esta puede ofrecer una experiencia de devolución de llamada si llama al método LaunchUriAsync con el ApplicationLink proporcionado. Si, por ejemplo, no se administra el esquema del URI porque el usuario desinstaló la aplicación, o si el URI se mueve a otro dispositivo que no tiene instalada la aplicación, se muestra un cuadro de diálogo que indica al usuario que busque una aplicación en la Tienda Windows. Se lleva al usuario a la Tienda Windows de manera predeterminada, pero no a la aplicación necesaria. Si incluyes el nombre de familia de paquete en el objeto LauncherOptions que se pasa a LaunchUriAsync, se solicita al usuario la instalación de la aplicación específica y se le lleva a la página que ofrece esa aplicación en la Tienda Windows.

Formato de URI desusado

Como hemos mencionado antes, Windows 8.1 divide el formato Uri en dos nuevos formatos de datos en DataPackage e introduce cuatro nuevas propiedades fuertemente tipadas en DataPackagePropertySet. Para DataPackage, el formato Uri está desusado y se reemplazó por los formatos WebLink y ApplicationLink. El formato Uri permanece como un alias para el formato WebLink.

Funcionamiento de los accesos en todas las pantallas

En Windows 8, cuando había varias aplicaciones en la pantalla y el usuario invocaba los accesos, el sistema mostraba accesos para la aplicación que ocupase el mayor espacio de pantalla. En Windows 8.1, el sistema muestra accesos para la última aplicación con la que ha interactuado el usuario, independientemente del número de aplicaciones que haya en la pantalla o de si hay varias pantallas. Por ejemplo, si el usuario selecciona el acceso a Configuración, el sistema muestra el control flotante de configuración de la última aplicación que se haya usado.

Diseña tu aplicación de forma que funcione con los accesos sea cual sea el tamaño de la aplicación. En concreto, el ancho del control flotante de configuración debe ser menor o igual que el ancho actual de la aplicación.

Compilar aplicaciones que se integren con personas y eventos

[Obtén las muestras de API del administrador de contactos, API de citas y Administración de acciones de contactos ahora.]

Windows 8.1 te permite traer el poder de las personas y los eventos a tu aplicación. Puedes permitir que los usuarios de tu aplicación busquen información sobre personas que conocen dentro de la aplicación y contacten con otras personas mediante la integración de experiencias de comunicación, como la mensajería, el correo electrónico, las llamadas, las videollamadas, etc. También puedes mantener a los usuarios en tu aplicación si les permites que vean rápidamente su disponibilidad en el calendario y agreguen eventos a su calendario preferido.

Usa estas nuevas API para permitir que tu aplicación visualice las tarjetas de contacto de personas y administre eventos desde la aplicación:

  • ShowContactCard método

    Permite que las aplicaciones consulten el contacto de un usuario en el sistema operativo y muestren los datos de contacto del usuario en una tarjeta de contacto.

  • AppointmentsProvider espacio de nombres

    Admite solicitudes de adición, sustitución y eliminación de citas mediante activaciones con las que interactúa un proveedor de citas.

  • AppointmentManager clase

    Permite a las aplicaciones interactuar con el proveedor de citas del usuario para la adición, sustitución o eliminación de eventos. También muestra la interfaz de usuario principal para el proveedor de citas.

  • Activation espacio de nombres

    Permite a una aplicación administrar los parámetros de activación para el nuevo proveedor de citas y los contratos de Contactar admitidos por Windows.

Síntesis de voz

[Consigue ahora la muestra de síntesis de voz].

Windows 8.1 presenta la API Windows.Media.SpeechSynthesis, que admite la síntesis de voz —también denominada texto a voz (TTS)— en las aplicaciones de la Tienda Windows.

La síntesis de voz permite solicitar a un usuario que proporcione datos, resaltar notificaciones y mensajes de la aplicación, proporcionar instrucciones (como la navegación paso a paso) y leer contenido, como texto o mensajes de correo, fuentes RSS, libros y resultados de búsqueda.

Windows 8.1 incluye varios motores de síntesis de voz, conocidos como voces. Cada voz tiene un nombre descriptivo, como Microsoft David (en-US, masculino), Microsoft Zira (en-US, femenino) y Microsoft Hazel (en-UK, femenino), que se pueden especificar en la aplicación y el usuario puede seleccionarlos desde el panel de control Idioma.

Las capacidades de síntesis de voz que Windows 8.1 admite te permiten:

  • Establecer el sintetizador de voz en un género, voz e idioma específicos.

  • Generar un fragmento hablado a partir de una cadena de texto sin formato mediante las características predeterminadas y las propiedades de la voz actual.

  • Generar un fragmento hablado a partir de una cadena que contenga lenguaje de marcado de síntesis de voz (SSML) para personalizar las características de la voz, como la pronunciación, el volumen, el tono, la velocidad, el énfasis, etc.

  • Leer y escribir datos de audio generados por el motor de síntesis de voz desde y hacia una secuencia de acceso aleatorio.

Generar un fragmento hablado a partir de texto sin formato

En este ejemplo se muestra cómo una aplicación de la Tienda Windows usa un objeto SpeechSynthesizer para crear una secuencia de audio y, después, generar un fragmento hablado a partir de una cadena de texto sin formato.

// The object for controlling and playing audio.
var audio = new Audio();

// The object for controlling the speech-synthesis engine (voice).
var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer();

// Generate the audio stream from plain text.
synth.synthesizeTextToStreamAsync("hello World").then(function (markersStream) {

    // Convert the stream to a URL Blob.
    var blob = MSApp.createBlobFromRandomAccessStream(markersStream.ContentType, markersStream);

    // Send the Blob to the audio object.
    audio.src = URL.createObjectURL(blob, { oneTimeOnly: true });
    audio.play();
});
// The media object for controlling and playing audio.
MediaElement mediaElement = this.media;

// The object for controlling the speech-synthesis engine (voice).
var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer();

// Generate the audio stream from plain text.
SpeechSynthesisStream stream = await synth.SynthesizeTextToStreamAsync("Hello World");

// Send the stream to the media object.
mediaElement.SetSource(stream, stream.ContentType);
mediaElement.Play();

Generar un fragmento hablado a partir de SSML

En este ejemplo se muestra cómo una aplicación de la Tienda Windows usa un objeto SpeechSynthesizer para crear una secuencia de audio y, después, generar un fragmento hablado a partir de una cadena de texto SSML.

// The string to speak with SSML customizations.
var Ssml = "<speak version='1.0' " +
    "xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='en-US'>" +
    "Hello <prosody contour='(0%,+80Hz) (10%,+80%) (40%,+80Hz)'>World</prosody> " + 
    "<break time='500ms' />" +
    "Goodbye <prosody rate='slow' contour='(0%,+20Hz) (10%,+30%) (40%,+10Hz)'>World</prosody>" +
    "</speak>";

// The object for controlling and playing audio.
var audio = new Audio();

// The object for controlling the speech-synthesis engine (voice).
var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer();

// Generate the audio stream from SSML.
synth.synthesizeSsmlToStreamAsync(Ssml).then(function(synthesisStream){

    // Convert the stream to a URL Blob.
    var blob = MSApp.createBlobFromRandomAccessStream(synthesisStream.ContentType, synthesisStream);

    // Send the Blob to the audio object.
    audio.src = URL.createObjectURL(blob, { oneTimeOnly: true });
    audio.play();
});
// The string to speak with SSML customizations.
string Ssml =
    @"<speak version='1.0' " +
    "xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='en-US'>" +
    "Hello <prosody contour='(0%,+80Hz) (10%,+80%) (40%,+80Hz)'>World</prosody> " + 
    "<break time='500ms' />" +
    "Goodbye <prosody rate='slow' contour='(0%,+20Hz) (10%,+30%) (40%,+10Hz)'>World</prosody>" +
    "</speak>";

// The media object for controlling and playing audio.
MediaElement mediaElement = this.media;

// The object for controlling the speech-synthesis engine (voice).
var synth = new Windows.Media.SpeechSynthesis.SpeechSynthesizer();

// Generate the audio stream from SSML.
SpeechSynthesisStream stream = await synth.synthesizeSsmlToStreamAsync(Ssml);

// Send the stream to the media object.
mediaElement.SetSource(stream, stream.ContentType);
mediaElement.Play();

Actualizaciones de la administración de tareas en segundo plano

[Obtén la muestra de tarea en segundo plano ahora].

Windows 8.1 agrega varias funciones nuevas a las tareas en segundo plano:

Período sin notificaciones y tareas en segundo plano

El período sin notificaciones es una nueva característica de Windows 8.1 que permite al usuario designar horas específicas del día en las que no quieren recibir molestas notificaciones. Esta característica también detiene la mayoría de la actividad en segundo plano asociada a las aplicaciones de la Tienda Windows, lo que evita molestias al usuario y la potencial extensión del ciclo de vida en espera conectado del dispositivo.

Cuando el sistema entra en el período sin notificaciones, las tareas en segundo plano se ponen en cola y se mantienen hasta el final de este período. Las tareas en segundo plano que se ejecuten en ese momento se cancelan.

Al final del período sin notificaciones, se permite que las tareas en segundo plano se inicien de nuevo. Cada tarea en segundo plano comienza de nuevo en un intervalo aleatorio antes de que el sistema salga del período sin notificaciones. Así se asegura que las tareas en segundo plano no se activan todas a la vez, ya que esto supondría una carga innecesaria en los recursos del sistema y del servidor remoto. El sistema no activará las notificaciones hasta la hora de finalización del período sin notificaciones.

De forma predeterminada, se permiten 2 excepciones en el período sin notificaciones: las llamadas de teléfono entrantes que llegan desde una aplicación que admite la nueva capacidad de llamada de la pantalla de bloqueo y las alarmas establecidas por el usuario en la aplicación de alarmas predeterminada. Si la aplicación admite llamadas de la pantalla de bloqueo, y la configuración de IncomingCall es TRUE, se ejecutará la tarea en segundo plano y se entregará la notificación. Durante el período sin notificaciones, se entregarán las notificaciones de las alarmas establecidas por el usuario en la aplicación de alarmas predeterminada.

El período sin notificaciones está habilitado de forma predeterminada desde medianoche hasta las 6 de la mañana, pero se permiten llamadas entrantes. Los usuarios pueden cambiar esta configuración o deshabilitar el período sin notificaciones en la pestaña Notificaciones de la sección Cambiar configuración de PC. El período sin notificaciones está disponible en todos los sistemas.

Cancelación de tareas inactivas

Además de las limitaciones de recursos de las tareas en segundo plano, la infraestructura de la tarea en segundo plano de Windows detecta tareas en segundo plano inactivas o bloqueadas. Una tarea en segundo plano se considera inactiva o bloqueada si no ha usado el mínimo de CPU o la cuota de recursos de red en un tiempo mínimo (que varía según el estado del sistema). Si se detecta una tarea en segundo plano inactiva o bloqueada, se envía una notificación de cancelación para que se detenga y se cierre. Si dicha tarea no se detiene y se cierra antes de 5 segundos, se considera que la aplicación no responde y el sistema se encarga de finalizarla.

En Windows 8.1, evita que la aplicación se detenga a causa de una tarea en segundo plano inactiva o bloqueada: asocia siempre un controlador de cancelación para que se cancele de forma limpia. Consulta detalles y fragmentos de código en el tema sobre cómo controlar tareas en segundo plano inactivas o bloqueadas.

Indicación de coste de trabajo en tareas en segundo plano

Windows 8.1 proporciona una indicación a las tareas en segundo plano sobre la disponibilidad de los recursos. Cuando se activa una tarea en segundo plano, puede usar esta indicación para decidir la cantidad de trabajo que va a realizar. Se puede informar de tres estados de recurso en segundo plano: bajo, medio y alto. Para obtener más información, consulta BackgroundWorkCost y BackgroundWorkCostValue.

Cmdlets de PowerShell para tareas en segundo plano

Los desarrolladores pueden usar los nuevos comandos de powershell de AppBackgroundTask y el nuevo módulo de diseño de cmdlet BackgroundTasksManager para recuperar información sobre tareas en segundo plano en ejecución. Esto puede resultar muy útil a la hora de implementar y depurar tareas en segundo plano. Para obtener más información, consulta Cmdlets de PowerShell para tareas en segundo plano.

Compatibilidad con la aplicación de alarma en la pantalla de bloqueo

[Consigue ahora la muestra de notificaciones de alarma].

En Windows 8.1, una de las ranuras de la pantalla de bloqueo se usa para las aplicaciones de alarma. Las aplicaciones de alarma usan la clase AlarmApplicationManager para solicitar permiso al usuario para convertirse en la aplicación de alarma del sistema. Si el usuario concede el permiso (o si el usuario coloca la aplicación en la ranura de alarma desde el panel de control), la aplicación ocupa la ranura y se convierte en la aplicación de alarma del sistema. Las notificaciones de alarma activadas por la aplicación de alarma del sistema se muestran al usuario con una precisión inferior a un segundo. Solo la aplicación de la ranura de alarma puede activar notificaciones de alarma. Las notificaciones de alarma activadas por otras aplicaciones se tratan como notificaciones normales.

Para programar notificaciones de alarma debes crear notificaciones del sistema con el elemento commands. Y debes usar el elemento audio para especificar el sonido de la alarma, que se reproduce cuando se activa la notificación, incluso si el sistema está silenciado.

Actualizaciones en la programación de elementos de trabajo

La API CoreDispatcher (Windows::UI::Core:CoreDispatcher) ahora te ofrece más control sobre las prioridades en la programación de elementos de trabajo.

En Windows 8.1, ahora las prioridades de envío de trabajos tienen este orden:

  1. SendMessage (prioridad más alta)
  2. CoreDispatcherPriority.High
  3. CoreDispatcherPriority.Normal (incluye mensajes de Windows y llamadas al Modelo de objetos componentes [COM])
  4. Cualquier mensaje de entrada de dispositivo
  5. CoreDispatcherPriority.Low
  6. CoreDispatcherPriority.Idle (prioridad más baja, usada para las tareas en segundo plano)

Para cambiar las prioridades de tarea, usa estos nuevos miembros en el tipo CoreDispatcher:

  • Método CoreDispatcher::ShouldYield (2 sobrecargas)— Consulta si el llamador debe rendir si hay elementos en la cola de tareas con la prioridad especificada o una mayor.

  • Propiedad CoreDispatcher::CurrentPriority— Obtiene o establece la prioridad actual de la última tarea administrada por CoreDispatcher. Cuando una aplicación está procesando trabajo de una determinada prioridad y llega trabajo con una prioridad mayor, establece esta propiedad para saltar la prioridad de la tarea actual, de modo que ShouldYield ofrezca resultados más precisos.