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