Referência do SDK JavaScript do Leitor Imersivo (v1.4)

O SDK do Leitor Imersivo contém uma biblioteca JavaScript que permite integrar o Leitor Imersivo ao seu aplicativo.

Você pode usar npm, yarn, ou um elemento HTML <script> para incluir a biblioteca da compilação estável mais recente em seu aplicativo Web:

<script type='text/javascript' src='https://ircdname.azureedge.net/immersivereadersdk/immersive-reader-sdk.1.4.0.js'></script>
npm install @microsoft/immersive-reader-sdk
yarn add @microsoft/immersive-reader-sdk

Funções

O SDK expõe estas funções:

Função: launchAsync

ImmersiveReader.launchAsync(token, subdomain, content, options) inicia o Immersive Reader dentro de um elemento HTML iframe em seu aplicativo Web. O tamanho do seu conteúdo é limitado a um máximo de 50 MB.

launchAsync(token: string, subdomain: string, content: Content, options?: Options): Promise<LaunchResponse>;
Parâmetro Tipo Description
token string O token de autenticação do Microsoft Entra. Para saber mais, consulte Como criar um recurso de leitor imersivo.
subdomínio string O subdomínio personalizado do seu recurso Leitor Imersivo no Azure.
content Conteúdo Um objeto que contém o conteúdo a ser mostrado no Leitor Imersivo.
options Opções Opções para configurar determinados comportamentos do Leitor Imersivo. Opcional.

Devoluções

Retorna um Promise<LaunchResponse>, que é resolvido quando o Leitor Imersivo é carregado. O Promise resolve para um objeto LaunchResponse .

Exceções

Se o Immersive Reader falhar ao carregar, o retorno Promise será rejeitado com um objeto Error .

Função: close

ImmersiveReader.close() fecha o Leitor Imersivo.

Um exemplo de caso de uso para esta função é se o botão de saída estiver oculto definindo hideExitButton: true em opções. Em seguida, um botão diferente (por exemplo, a seta para trás de um cabeçalho móvel) pode chamar essa close função quando é clicado.

close(): void;

Função: renderButtons

A ImmersiveReader.renderButtons(options) função não é necessária se você usar a orientação do botão Como personalizar o Leitor Imersivo.

Esta função estiliza e atualiza os elementos do botão Leitor Imersivo do documento. Se options.elements for fornecido, os botões serão renderizados dentro de cada elemento fornecido em options.elements. O uso do options.elements parâmetro é útil quando você tem várias seções no documento para iniciar o Leitor Imersivo e deseja uma maneira simplificada de renderizar vários botões com o mesmo estilo, ou deseja renderizar os botões com um padrão de design simples e consistente. Para usar essa função com o parâmetro renderButtons options , chame ImmersiveReader.renderButtons(options: RenderButtonsOptions); o carregamento da página, conforme demonstrado no trecho de código a seguir. Caso contrário, os botões são renderizados dentro dos elementos do documento que têm a classe immersive-reader-button , conforme mostrado em Como personalizar o botão Leitor imersivo.

// 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 os atributos opcionais do botão de inicialização para obter mais opções de renderização. Para usar essas opções, adicione qualquer um dos atributos de opção a cada HTMLDivElement um no HTML da página.

renderButtons(options?: RenderButtonsOptions): void;
Parâmetro Tipo Description
options opções renderButtons Opções para configurar determinados comportamentos da função renderButtons. Opcional.

opções renderButtons

Opções para renderizar os botões do Leitor Imersivo.

{
    elements: HTMLDivElement[];
}
Parâmetro Tipo Description
elementos HTMLDivElement[] Elementos para renderizar os botões do Leitor Imersivo.
Type: HTMLDivElement[]
Required: false

Botão Iniciar

O SDK fornece estilo padrão para o botão de inicialização do Immersive Reader. Use o immersive-reader-button atributo class para habilitar esse estilo. Para obter mais informações, consulte Como personalizar o botão Leitor imersivo.

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

Use os seguintes atributos opcionais para configurar a aparência do botão.

Atributo Description
estilo de botão de dados Define o estilo do botão. Pode ser icon, text, ou iconAndText. O padrão é icon.
localidade de dados Define a localidade. Por exemplo, en-US ou fr-FR. O padrão é Inglês en.
data-icon-px-size Define o tamanho do ícone em pixels. O padrão é 20 px.

LaunchResponse

Contém a resposta da chamada para ImmersiveReader.launchAsync. Uma referência ao elemento HTML iframe que contém o Immersive Reader pode ser acessada via container.firstChild.

{
    container: HTMLDivElement;
    sessionId: string;
    charactersProcessed: number;
}
Parâmetro Tipo Description
contentor HTMLDivElement HTML que contém o elemento Immersive Reader iframe .
sessionId String Identificador global exclusivo para esta sessão, usado para depuração.
caracteresProcessados Número Número total de caracteres processados

Erro

Contém informações sobre um erro.

{
    code: string;
    message: string;
}
Parâmetro Tipo Description
code String Um de um conjunto de códigos de erro.
mensagem String Representação legível por humanos do erro.
Código de erro Description
BadArgument O argumento fornecido é inválido. Consulte message o parâmetro do erro.
Limite de tempo excedido O leitor imersivo falhou ao carregar dentro do tempo limite especificado.
TokenExpired O token fornecido expirou.
Limitado O limite da taxa de chamadas foi excedido.

Tipos

Conteúdo

Contém o conteúdo a ser mostrado no Leitor Imersivo.

{
    title?: string;
    chunks: Chunk[];
}
Parâmetro Tipo Description
cargo String Texto do título mostrado na parte superior do Leitor Imersivo (opcional)
pedaços Chunk[] Matriz de pedaços
title
Type: String
Required: false
Default value: "Immersive Reader" 
chunks
Type: Chunk[]
Required: true
Default value: null 

Segmento

Um único pedaço de dados, que é passado para o conteúdo do Leitor Imersivo.

{
    content: string;
    lang?: string;
    mimeType?: string;
}
Parâmetro Tipo Description
content String A cadeia de caracteres que contém o conteúdo enviado para o Leitor Imersivo.
lang String Idioma do texto, o valor está no formato de tag IETF BCP 47-language , por exemplo, en, es-ES. O idioma é detetado automaticamente se não for especificado. Para obter mais informações, veja Idiomas suportados.
mimeType string Texto simples, MathML, HTML ou formatos DOCX do Microsoft Word são suportados. Para obter mais informações, consulte Tipos MIME suportados.
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 suportados

Tipo MIME Description
text/plain Texto simples.
text/html Conteúdo HTML.
aplicativo/mathml+xml Linguagem de Marcação Matemática (MathML).
aplicativo/vnd.openxmlformats-officedocument.wordprocessingml.document Documento em formato de .docx do Microsoft Word.

Opções

Contém propriedades que configuram determinados comportamentos do Leitor Imersivo.

{
    uiLang?: string;
    timeout?: number;
    uiZIndex?: number;
    useWebview?: boolean;
    onExit?: () => any;
    customDomain?: string;
    allowFullscreen?: boolean;
    parent?: Node; 
    hideExitButton?: boolean;
    cookiePolicy?: CookiePolicy;
    disableFirstRun?: boolean;
    readAloudOptions?: ReadAloudOptions;
    translationOptions?: TranslationOptions;
    displayOptions?: DisplayOptions;
    preferences?: string;
    onPreferencesChanged?: (value: string) => any;
    disableGrammar?: boolean;
    disableTranslation?: boolean;
    disableLanguageDetection?: boolean;
}
Parâmetro Tipo Description
uiLang String Idioma da interface do usuário, o valor está no formato de marca de 47 idiomas BCP IETF, por exemplo, en, es-ES. O padrão é o idioma do navegador, se não for especificado.
tempo limite Número Duração (em milissegundos) antes de iniciarAsync falha com um erro de tempo limite (o padrão é 15.000 ms). Este tempo limite só se aplica ao lançamento inicial da página Leitor, quando a página Leitor é aberta com êxito e o girador é iniciado. O ajuste do tempo limite não deve ser necessário.
uiZIndex Número Z-index do elemento HTML iframe que é criado (o padrão é 1000).
useWebview Boolean Utilize uma etiqueta Webview em vez de um elemento HTML iframe para compatibilidade com as aplicações Chrome (o predefinido é false).
onSair Function Executa quando o Leitor Imersivo é encerrado.
customDomain String Reservado para uso interno. Domínio personalizado onde o webapp Immersive Reader está hospedado (o padrão é null).
permitirTela cheia Boolean A capacidade de alternar em tela cheia (o padrão é true).
parent Nó no qual o elemento HTML iframe ou Webview contêiner é colocado. Se o elemento não existir, o iframe será colocado em body.
hideExitButton Boolean Oculta a seta do botão de saída do Leitor Imersivo (o padrão é false). Esse valor só deve ser verdadeiro se houver um mecanismo alternativo fornecido para sair do Leitor Imersivo (por exemplo, a seta para trás de uma barra de ferramentas móvel).
Política de cookies Política de Cookies Configuração para o uso de cookies do Leitor Imersivo (o padrão é CookiePolicy.Disable). É da responsabilidade da aplicação anfitriã obter qualquer consentimento necessário do utilizador de acordo com a Política de Conformidade de Cookies da UE. Para obter mais informações, consulte Opções da Política de cookies.
desativarFirstRun Boolean Desative a primeira experiência de execução.
readAloudOptions ReadAloudOptions Opções para configurar a leitura em voz alta.
traduçãoOpções Opções de tradução Opções para configurar a tradução.
displayOpções Opções de exibição Opções para configurar o tamanho do texto, fonte, tema e assim por diante.
preferências String String retornada de onPreferencesChanged representando as preferências do usuário no Immersive Reader. Para obter mais informações, consulte Como armazenar as preferências do usuário.
onPreferênciasAlterado Function É executado quando as preferências do usuário foram alteradas. Para obter mais informações, consulte Como armazenar as preferências do usuário.
desativarTradução Boolean Desative a experiência de tradução de palavras e documentos.
disableGrammar Boolean Desative a experiência gramatical. Esta opção também desativa Sílabas, Partes da Fala e Dicionário de Imagens, que depende de Partes da Fala.
disableLanguageDetection Boolean Desative a Deteção de Idioma para garantir que o Leitor Imersivo use apenas o idioma explicitamente especificado no Chunk/[]. Essa opção deve ser usada com moderação, principalmente em situações em que a deteção de idioma não está funcionando. Por exemplo, é mais provável que este problema aconteça com passagens curtas de menos de 100 caracteres. Você deve ter certeza sobre o idioma que está enviando, pois a conversão de texto em fala não terá a voz correta. As sílabas, as partes da fala e o dicionário de imagens não funcionam corretamente se o idioma não estiver correto.
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
Type: String
Required: false
Default value: null

Atenção

Não tente alterar programaticamente os valores da cadeia de -preferences caracteres enviada de e para o aplicativo Immersive Reader porque isso pode causar um comportamento inesperado, resultando em uma experiência de usuário degradada. Os aplicativos host nunca devem atribuir um valor personalizado ou manipular a -preferences cadeia de caracteres. Ao usar a -preferences opção string, use apenas o valor exato que foi retornado da -onPreferencesChanged opção de retorno de chamada.

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âmetro Tipo Description
voice String Voz, feminina ou masculina. Nem todos os idiomas suportam ambos os sexos.
velocidade Número Velocidade de reprodução. Deve ter entre 0,5 e 2,5, inclusive.
Reprodução automática Boolean Inicie automaticamente a leitura em voz alta quando o leitor imersivo carregar.

Nota

Devido a limitações do navegador, a reprodução automática não é suportada no Safari.

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

Opções de tradução

type TranslationOptions = {
    language: string;
    autoEnableDocumentTranslation?: boolean;
    autoEnableWordTranslation?: boolean;
};
Parâmetro Tipo Description
idioma String Define o idioma de tradução, o valor está no formato de tag IETF BCP de 47 idiomas , por exemplo, fr-FR, es-MX, zh-Hans-CN. Necessário para ativar automaticamente a tradução de palavras ou documentos.
autoEnableDocumentTranslation Boolean Traduza automaticamente todo o documento.
autoEnableWordTranslation Boolean Habilite automaticamente a tradução de palavras.
language
Type: String
Required: true
Default value: null 
Values available: For more information, see the Supported languages section

ThemeOption

enum ThemeOption { Light, Dark }

Opções de exibição

type DisplayOptions = {
    textSize?: number;
    increaseSpacing?: boolean;
    fontFamily?: string;
    themeOption?: ThemeOption
};
Parâmetro Tipo Description
textSize Número Define o tamanho do texto escolhido.
aumentarEspaçamento Boolean Define se o espaçamento entre textos está ativado ou desativado.
fontFamília String Define a fonte escolhida (Calibri, ComicSans ou Sitka).
themeOption ThemeOption Define o tema escolhido pelo leitor (Claro, Escuro).
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"

Opções de CookiePolicy

enum CookiePolicy { Disable, Enable }

As configurações a seguir são apenas para fins informativos. O Immersive Reader armazena as suas definições, ou preferências do utilizador, em cookies. Esta opção cookiePolicy desativa o uso de cookies por padrão para seguir as leis de conformidade de cookies da UE. Se você quiser reativar os cookies e restaurar a funcionalidade padrão para as preferências do usuário do Immersive Reader, seu site ou aplicativo precisa do consentimento adequado do usuário para ativar os cookies. Em seguida, para reativar os cookies no Leitor Imersivo, você deve definir explicitamente a opção cookiePolicy como CookiePolicy.Enable ao iniciar o Leitor Imersivo.

A tabela a seguir descreve quais configurações o Immersive Reader armazena em seu cookie quando a opção cookiePolicy está ativada.

Definição Tipo Description
textSize Número Define o tamanho do texto escolhido.
fontFamília String Define a fonte escolhida (Calibri, ComicSans ou Sitka).
textEspaçamento entre textos Número Define se o espaçamento entre textos está ativado ou desativado.
formataçãoAtivado Boolean Define se a formatação HTML está ativada ou desativada.
tema String Define o tema escolhido (Claro, Escuro).
syllabificationEnabled Boolean Define se a silabificação foi ativada ou desativada.
nounHighlightingEnabled Boolean Define se o realce de substantivo está ativado ou desativado.
substantivoDestaqueCor String Define a cor de realce substantivo escolhida.
verbHighlightingEnabled Boolean Define se o realce de verbos é ativado ou desativado.
verbHighlightingColor String Define a cor de realce verbal escolhida.
adjetivoDestaqueAtivado Boolean Define se o realce de adjetivo está ativado ou desativado.
adjetivoDestaqueCor String Define a cor de realce adjetivo escolhida.
adverbHighlightingEnabled Boolean Define se o realce de advérbio está ativado ou desativado.
advérbioHighlightingColor String Define a cor de realce de advérbio escolhida.
pictureDictionaryEnabled Boolean Define se o Dicionário de Imagens está ativado ou desativado.
posLabelsEnabled Boolean Define se o rótulo de texto sobrescrito de cada Parte da Fala realçada está ativado ou desativado.

Idiomas suportados

O recurso de tradução do Immersive Reader suporta muitos idiomas. Para obter mais informações, consulte Suporte a idiomas.

Suporte HTML

Quando a formatação está ativada, o conteúdo a seguir é processado como HTML no Leitor Imersivo.

HTML Conteúdo suportado
Estilos de fonte Negrito, itálico, sublinhado, código, tachado, sobrescrito, subscrito
Listas não ordenadas Disco, círculo, quadrado
Listas ordenadas Decimal, alfa superior, alfa inferior, romano superior, romano inferior

As tags sem suporte são renderizadas de forma comparável. Imagens e tabelas não são suportadas no momento.

Suporte do browser

Use as versões mais recentes dos seguintes navegadores para obter a melhor experiência com o Immersive Reader.

  • Microsoft Edge
  • Google Chrome
  • Mozilla Firefox
  • Apple Safari

Próximo passo