Referencia del SDK de JavaScript de Lector inmersivo (v 1.1)

El SDK del Lector inmersivo contiene una biblioteca de JavaScript que permite integrar dicho lector en la aplicación.

Functions

El SDK expone las funciones:


launchAsync

Inicia el Lector inmersivo dentro de un iframe en la aplicación web. Tenga en cuenta que el tamaño del contenido está limitado a un máximo de 50 MB.

launchAsync(token: string, subdomain: string, content: Content, options?: Options): Promise<LaunchResponse>;

Parámetros de launchAsync

Nombre Tipo Descripción
token string Token de autenticación de Azure AD Consulte Procedimiento: Creación de un recurso del Lector inmersivo para más detalles.
subdomain string El subdominio personalizado del recurso Lector inmersivo en Azure. Consulte Procedimiento: Creación de un recurso del Lector inmersivo para más detalles.
content Contenido Un objeto que contiene el contenido que se mostrará en el Lector inmersivo.
options Opciones Opciones para configurar ciertos comportamientos del Lector inmersivo. Opcional.

Devuelve

Devuelve Promise<LaunchResponse>, que se resuelve cuando el lector inmersivo se carga. El objeto Promise se resuelve en un objeto LaunchResponse.

Excepciones

El valor devuelto de Promise se rechazará con un objeto Error si el Lector inmersivo no se puede cargar. Para más información, consulte los códigos de error.


close

Cierra el lector inmersivo.

Un caso de uso de ejemplo de esta función se produce si el botón para salir se oculta al establecer hideExitButton: true en options. Después, un botón distinto (por ejemplo, la flecha atrás de un encabezado para dispositivos móviles) puede llamar a esta función close cuando se hace clic en ella.

close(): void;

Botón de inicio del Lector inmersivo

El SDK proporciona el estilo predeterminado para el botón para iniciar el Lector inmersivo. Use el atributo de clase immersive-reader-button para habilitar este estilo. Consulte Procedimiento: Personalización del botón del Lector inmersivo para más detalles.

<div class='immersive-reader-button'></div>

Atributos opcionales

Use los siguientes atributos para configurar la apariencia y sensibilidad del botón.

Atributo Descripción
data-button-style Establece el estilo del botón. Puede ser icon, text o iconAndText. Su valor predeterminado es icon.
data-locale Establece la configuración regional. Por ejemplo, en-US o fr-FR. El valor predeterminado es el idioma inglés en.
data-icon-px-size Establece el tamaño del icono en píxeles. El valor predeterminado es 20 píxeles.

renderButtons

La función renderButtons no es necesaria si usa la guía Procedimiento: Personalización del botón del Lector inmersivo.

Esta función crea los estilos y actualiza los elementos del botón de lector inmersivo del documento. Si se proporciona options.elements, los botones se representarán dentro de cada elemento proporcionado en options.elements. El uso del parámetro options.elements resulta útil cuando en varias secciones del documento se inicia el Lector inmersivo y se quiere una manera simplificada de presentar varios botones con el mismo estilo o se quiere representar los botones con un modelo de diseño sencillo y coherente. Para usar esta función con el parámetro renderButtons options, llame a ImmersiveReader.renderButtons(options: RenderButtonsOptions); en la carga de la página, como se muestra en el fragmento de código siguiente. De lo contrario, los botones se representarán dentro de los elementos del documento que tengan la clase immersive-reader-button, tal como se muestra en Procedimiento: Personalización del botón del Lector inmersivo.

// This snippet assumes there are two empty div elements in
// the page HTML, button1 and button2.
const btn1: HTMLDivElement = document.getElementById('button1');
const btn2: HTMLDivElement = document.getElementById('button2');
const btns: HTMLDivElement[] = [btn1, btn2];
ImmersiveReader.renderButtons({elements: btns});

Consulte el apartado Atributos opcionales anterior, para más opciones de representación. Para usar estas opciones, agregue cualquiera de los atributos de opción a cada HTMLDivElement en el código HTML de la página.

renderButtons(options?: RenderButtonsOptions): void;

Parámetros de renderButtons

Nombre Tipo Descripción
options Opciones de renderButtons Opciones para configurar ciertos comportamientos de la función renderButtons. Opcional.

Opciones de renderButtons

Opciones para representar los botones del lector inmersivo.

{
    elements: HTMLDivElement[];
}

Parámetros de opciones de renderButtons

Configuración Tipo Descripción
Elementos HTMLDivElement[] Elementos para representar los botones del Lector inmersivo.
elements
Type: HTMLDivElement[]
Required: false

LaunchResponse

Contiene la respuesta de la llamada a ImmersiveReader.launchAsync. Tenga en cuenta que se puede acceder a una referencia al elemento iframe que contiene el Lector inmersivo a través de container.firstChild.

{
    container: HTMLDivElement;
    sessionId: string;
}

Parámetros de LaunchResponse

Configuración Tipo Descripción
contenedor HTMLDivElement Elemento HTML que contiene el iframe del Lector inmersivo.
sessionID String Identificador único global de esta sesión, que se usa para la depuración.

Error

Contiene información sobre un error.

{
    code: string;
    message: string;
}

Parámetros de error

Configuración Tipo Descripción
código String Uno de un conjunto de códigos de error. Consulte Códigos de error.
message String Representación legible del error.

Códigos de error

Código Descripción
BadArgument El argumento proporcionado no es válido, consulte el parámetro message del Error.
Tiempo de espera El Lector inmersivo no se pudo cargar en el tiempo de espera especificado.
TokenExpired El token suministrado en caché ha expirado.
Limitado Se ha superado el límite de frecuencia de llamadas.

Tipos

Contenido

Contiene el contenido que se mostrará en el Lector inmersivo.

{
    title?: string;
    chunks: Chunk[];
}

Parámetros de contenido

Nombre Tipo Descripción
title String Texto del título que se muestra en la parte superior del Lector inmersivo (opcional)
fragmentos Chunk[] Matriz de fragmentos
title
Type: String
Required: false
Default value: "Immersive Reader" 
chunks
Type: Chunk[]
Required: true
Default value: null 

Fragmento

Un único fragmento de datos, que se pasará al contenido del lector inmersivo.

{
    content: string;
    lang?: string;
    mimeType?: string;
}

Parámetros de fragmentos

Nombre Tipo Descripción
contenido String Cadena con el contenido enviado al Lector inmersivo.
lang String Idioma del texto, el valor está en formato de etiqueta de idioma IETF BCP 47, por ejemplo, en es-ES. El idioma se detectará automáticamente si no se especifica. Consulte Idiomas admitidos.
mimeType string Se admiten los formatos de texto sin formato, MathML, HTML y Microsoft Word DOCX. Para obtener más información, consulte Tipos MIME admitidos.
content
Type: String
Required: true
Default value: null 
lang
Type: String
Required: false
Default value: Automatically detected 
mimeType
Type: String
Required: false
Default value: "text/plain"

Tipos MIME compatibles

Tipo MIME Descripción
text/plain Texto sin formato.
text/html Contenido HTML. Más información
application/mathml+xml Lenguaje de marcado matemático (MathML). Más información.
application/vnd.openxmlformats-officedocument.wordprocessingml.document Documento de Microsoft Word con formato .docx.

Opciones

Contiene propiedades que configuran ciertos comportamientos del Lector inmersivo.

{
    uiLang?: string;
    timeout?: number;
    uiZIndex?: number;
    useWebview?: boolean;
    onExit?: () => any;
    allowFullscreen?: boolean;
    hideExitButton?: boolean;
    cookiePolicy?: CookiePolicy;
    disableFirstRun?: boolean;
    readAloudOptions?: ReadAloudOptions;
    translationOptions?: TranslationOptions;
    displayOptions?: DisplayOptions;
    preferences?: string;
    onPreferencesChanged?: (value: string) => any;
    customDomain?: string;
}

Parámetros de opciones

Nombre Tipo Descripción
uiLang String Idioma de la interfaz de usuario, el valor está en formato de etiqueta de idioma IETF BCP 47, por ejemplo, en es-ES. Si no se especifica, el valor predeterminado es el idioma del explorador.
timeout Number Duración (en milisegundos) antes de que launchAsync produzca un error de tiempo de espera (el valor predeterminado es 15 000 ms). Este tiempo de espera solo se aplica al lanzamiento inicial de la página del lector, donde se observa que se ha realizado correctamente cuando se abre la página del lector y se inicia el indicador giratorio. No es necesario ajustar el tiempo de espera.
uiZIndex Number Índice Z del iframe que se va a crear (el valor predeterminado es 1000).
useWebview Boolean Use una etiqueta de vista web en lugar de un iframe para la compatibilidad con aplicaciones de Chrome (el valor predeterminado es false).
onExit Función Se ejecuta cuando se cierra el Lector inmersivo.
allowFullscreen Boolean La capacidad de alternar a la pantalla completa (el valor predeterminado es true).
hideExitButton Boolean Indica si se va a ocultar o no la flecha del botón de salida del Lector inmersivo (el valor predeterminado es false). Solo debe ser true si hay un mecanismo alternativo proporcionado para salir del Lector inmersivo (por ejemplo, la flecha atrás de la barra de herramientas móvil).
cookiePolicy CookiePolicy Configuración para el uso de cookies del Lector inmersivo (el valor predeterminado es CookiePolicy.Disable). Es responsabilidad de la aplicación host obtener cualquier consentimiento del usuario necesario según la directiva de cumplimiento de cookies de Europa. Consulte Opciones de la directiva de cookies.
disableFirstRun Boolean Deshabilita la experiencia de primera ejecución.
readAloudOptions ReadAloudOptions Opciones para configurar la lectura en voz alta.
translationOptions TranslationOptions Opciones para configurar la traducción.
displayOptions DisplayOptions Opciones para configurar el tamaño del texto, la fuente, etc.
preferences String Cadena devuelta por onPreferencesChanged que representa las preferencias del usuario en el Lector inmersivo. Consulte Parámetros de configuración y Procedimiento: Almacenamiento de las preferencias de usuario para más información.
onPreferencesChanged Función Se ejecuta cuando las preferencias del usuario han cambiado. Consulte Procedimiento: Almacenamiento de las preferencias de usuario para más información.
customDomain String Reservado para uso interno. Dominio personalizado en el que se hospeda la aplicación web del Lector inmersivo (el valor predeterminado es null).
uiLang
Type: String
Required: false
Default value: User's browser language 
timeout
Type: Number
Required: false
Default value: 15000
uiZIndex
Type: Number
Required: false
Default value: 1000
onExit
Type: Function
Required: false
Default value: null
preferences

Precaución

IMPORTANTE No intente cambiar mediante programación los valores de la cadena -preferences enviada a la aplicación del Lector inmersivo o desde ella, ya que puede provocar un comportamiento inesperado y dar lugar a una experiencia de usuario degradada para los clientes. Recuerde que las aplicaciones host nunca deben asignar un valor personalizado a la cadena -preferences ni manipularla. Al utilizar la opción de cadena -preferences, use solo el valor exacto que se devolvió en la opción de devolución de llamada -onPreferencesChanged.

Type: String
Required: false
Default value: null
onPreferencesChanged
Type: Function
Required: false
Default value: null
customDomain
Type: String
Required: false
Default value: null

ReadAloudOptions

type ReadAloudOptions = {
    voice?: string;
    speed?: number;
    autoplay?: boolean;
};

Parámetros de ReadAloudOptions

Nombre Tipo Descripción
voice String Voz, "mujer" u "hombre". No todos los idiomas admiten ambos géneros.
velocidad Number La velocidad de reproducción debe ser entre 0,5 y 2,5, ambos inclusive.
autoPlay Boolean Se inicia automáticamente la lectura en voz alta cuando se carga el Lector inmersivo.
voice
Type: String
Required: false
Default value: "Female" or "Male" (determined by language) 
Values available: "Female", "Male"
speed
Type: Number
Required: false
Default value: 1
Values available: 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.25, 2.5

Nota

Debido a las limitaciones del explorador, la reproducción automática no se admite en Safari.


TranslationOptions

type TranslationOptions = {
    language: string;
    autoEnableDocumentTranslation?: boolean;
    autoEnableWordTranslation?: boolean;
};

Parámetros de TranslationOptions

Nombre Tipo Descripción
language String Establece el idioma de traducción, el valor está en formato de etiqueta de idioma IETF BCP 47, por ejemplo, fr-FR, es-MX, ZH-Hans-CN. Necesario para habilitar automáticamente la traducción de documentos o palabras.
autoEnableDocumentTranslation Boolean Traducción automática de todo el documento.
autoEnableWordTranslation Boolean Habilitación automática de la traducción de palabras.
language
Type: String
Required: true
Default value: null 
Values available: See the Supported Languages section

DisplayOptions

type DisplayOptions = {
    textSize?: number;
    increaseSpacing?: boolean;
    fontFamily?: string;
};

Parámetros de DisplayOptions

Nombre Tipo Descripción
textSize Number Establece el tamaño de texto elegido.
increaseSpacing Boolean Establece si el espaciado de texto está activado o desactivado.
fontFamily String Establece la fuente elegida ("Calibri", "ComicSans" o "Sitka").
textSize
Type: Number
Required: false
Default value: 20, 36 or 42 (Determined by screen size)
Values available: 14, 20, 28, 36, 42, 48, 56, 64, 72, 84, 96
fontFamily
Type: String
Required: false
Default value: "Calibri"
Values available: "Calibri", "Sitka", "ComicSans"

Opciones de CookiePolicy

enum CookiePolicy { Disable, Enable }

La configuración que se muestra a continuación solo es informativa. El Lector inmersivo almacena su configuración, o preferencias de usuario, en cookies. La opción cookiePolicy deshabilita el uso de cookies de manera predeterminada para cumplir con las leyes de cumplimiento de cookies de Europa. Si desea volver a habilitar las cookies y restaurar la funcionalidad predeterminada para las preferencias de usuario del Lector inmersivo, deberá asegurarse de que el sitio web o la aplicación obtienen el consentimiento adecuado del usuario para habilitar las cookies. Después, para volver a habilitar las cookies en el Lector inmersivo, debe establecer explícitamente la opción cookiePolicy en CookiePolicy.Enable al iniciar el Lector inmersivo. En la tabla siguiente se describe qué configuración almacena el Lector inmersivo en su cookie cuando está habilitada la opción cookiePolicy.

Parámetros de configuración

Configuración Tipo Descripción
textSize Number Establece el tamaño de texto elegido.
fontFamily String Establece la fuente elegida ("Calibri", "ComicSans" o "Sitka").
textSpacing Number Establece si el espaciado de texto está activado o desactivado.
formattingEnabled Boolean Establece si el formato HTML de texto está activado o desactivado.
tema String Establece el tema elegido (por ejemplo, "Claro", "Oscuro"...).
syllabificationEnabled Boolean Establece si la silabación está activada o desactivada.
nounHighlightingEnabled Boolean Establece si el resaltado de sustantivos está activado o desactivado.
nounHighlightingColor String Establece el color elegido para el resaltado de sustantivos.
verbHighlightingEnabled Boolean Establece si el resaltado de verbos está activado o desactivado.
verbHighlightingColor String Establece el color elegido para el resaltado de verbos.
adjectiveHighlightingEnabled Boolean Establece si el resaltado de adjetivos está activado o desactivado.
adjectiveHighlightingColor String Establece el color elegido para el resaltado de adjetivos.
adverbHighlightingEnabled Boolean Establece si el resaltado de adverbios está activado o desactivado.
adverbHighlightingColor String Establece el color elegido para el resaltado de adverbios.
pictureDictionaryEnabled Boolean Establece si el Diccionario de imágenes está activado o desactivado.
posLabelsEnabled Boolean Establece si la etiqueta de texto de superíndice de cada parte de voz resaltada está activada o desactivada.

Idiomas compatibles

La característica de traducción del Lector inmersivo admite muchos idiomas. Vea Compatibilidad de idiomas para obtener más información.


Compatibilidad con HTML

Cuando se habilita el formato, el siguiente contenido se representará como HTML en el Lector inmersivo.

HTML Contenido admitido
Estilos de fuente Negrita, cursiva, subrayado, código, tachado, superíndice, subíndice
Listas sin ordenar Disco, círculo, cuadrado
Listas ordenadas Decimal, alfabético en mayúsculas, alfabético en minúsculas, romano superior, romano inferior

Las etiquetas no admitidas se representarán de la misma forma. Las imágenes y las tablas actualmente no se admiten.


Compatibilidad con exploradores

Use las versiones más recientes de los siguientes exploradores para disfrutar de la mejor experiencia con el Lector inmersivo.

  • Microsoft Edge
  • Internet Explorer 11
  • Google Chrome
  • Mozilla Firefox
  • Apple Safari

Pasos siguientes