Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
No visão geral, aprendeu sobre o Leitura Avançada e como este implementa técnicas comprovadas para melhorar a compreensão de leitura para aprendizes de línguas, leitores emergentes e alunos com diferenças de aprendizagem. Este artigo demonstra como lançar o Leitura Avançada usando JavaScript, Python, C#, Android ou iOS.
Pré-requisitos
- Uma subscrição do Azure. Você pode criar um gratuitamente.
- Um recurso Leitura Avançada configurado para autenticação Microsoft Entra. Siga estas instruções para se configurar. Salve a saída da sessão em um arquivo de texto para que você possa configurar as propriedades do ambiente.
- Node.js e Yarn.
- Um IDE como Visual Studio Code.
Criar um aplicativo Web Node.js com o Express
Crie um aplicativo Web Node.js com a ferramenta.
npm install express-generator -g
express --view=pug myapp
cd myapp
Instale as dependências do Yarn e adicione as dependências e , que serão usadas posteriormente no tutorial.
yarn
yarn add request
yarn add dotenv
Instale as bibliotecas axios e qs com o seguinte comando:
npm install axios qs
Configurar a autenticação
De seguida, escreva uma API backend para recuperar um token de autenticação Microsoft Entra.
Precisas de alguns valores do pré-requisito de configuração de autenticação do Microsoft Entra para esta parte. Consulte novamente o arquivo de texto que você salvou dessa sessão.
TenantId => Azure subscription TenantId
ClientId => Microsoft Entra ApplicationId
ClientSecret => Microsoft Entra Application Service Principal password
Subdomain => Immersive Reader resource subdomain (resource 'Name' if the resource was created in the Azure portal, or 'CustomSubDomain' option if the resource was created with Azure CLI PowerShell. Check the Azure portal for the subdomain on the Endpoint in the resource Overview page, for example, 'https://[SUBDOMAIN].cognitiveservices.azure.com/')
Crie um novo arquivo chamado .env na raiz do seu projeto. Cole o código seguinte nele, fornecendo os valores dados quando criou o seu recurso Leitura Avançada. Não inclua aspas ou os caracteres e .
TENANT_ID={YOUR_TENANT_ID}
CLIENT_ID={YOUR_CLIENT_ID}
CLIENT_SECRET={YOUR_CLIENT_SECRET}
SUBDOMAIN={YOUR_SUBDOMAIN}
Certifique-se de não submeter esse arquivo no controlo de código-fonte, porque ele contém segredos que não devem ser tornados públicos.
Em seguida, abra app.js e adicione o seguinte à parte superior do arquivo. Isso carrega as propriedades definidas no arquivo .env como variáveis de ambiente no Node.
require('dotenv').config();
Abra o arquivo routes\index.js e substitua seu conteúdo pelo código a seguir.
Este código cria um ponto de extremidade de API que obtém um token de autenticação do Microsoft Entra usando a senha do seu service principal. Ele também recupera o subdomínio. Em seguida, ele retorna um objeto que contém o token e o subdomínio.
var request = require('request');
var express = require('express');
var router = express.Router();
router.get('/getimmersivereaderlaunchparams', function(req, res) {
request.post ({
headers: {
'content-type': 'application/x-www-form-urlencoded'
},
url: `https://login.windows.net/${process.env.TENANT_ID}/oauth2/token`,
form: {
grant_type: 'client_credentials',
client_id: process.env.CLIENT_ID,
client_secret: process.env.CLIENT_SECRET,
resource: 'https://cognitiveservices.azure.com/'
}
},
function(err, resp, tokenResponse) {
if (err) {
return res.status(500).send('CogSvcs IssueToken error');
}
const token = JSON.parse(tokenResponse).access_token;
const subdomain = process.env.SUBDOMAIN;
return res.send({token: token, subdomain: subdomain});
}
);
});
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
module.exports = router;
O endpoint da API getimmersivereaderlaunchparams deve estar protegido por algum tipo de autenticação (por exemplo, OAuth) para evitar que utilizadores não autorizados obtenham tokens para usar contra o seu serviço de Leitura Avançada e faturação; esse trabalho está fora do âmbito deste tutorial.
Lance o Leitura Avançada com conteúdos de exemplo
Abra views\layout.pug e adicione o seguinte código sob a tag , antes dela . Estas etiquetas
scriptcarregam o SDK Leitura Avançada SDK e o jQuery.script(src='https://ircdname.azureedge.net/immersivereadersdk/immersive-reader-sdk.1.2.0.js') script(src='https://code.jquery.com/jquery-3.3.1.min.js')Abra views\index.pug e substitua seu conteúdo pelo código a seguir. Este código preenche a página com algum conteúdo de exemplo e adiciona um botão que inicia o Leitura Avançada.
extends layout block content h2(id='title') Geography p(id='content') The study of Earth's landforms is called physical geography. Landforms can be mountains and valleys. They can also be glaciers, lakes or rivers. div(class='immersive-reader-button' data-button-style='iconAndText' data-locale='en-US' onclick='launchImmersiveReader()') script. function getImmersiveReaderLaunchParamsAsync() { return new Promise((resolve, reject) => { $.ajax({ url: '/getimmersivereaderlaunchparams', type: 'GET', success: data => { resolve(data); }, error: err => { console.log('Error in getting token and subdomain!', err); reject(err); } }); }); } async function launchImmersiveReader() { const content = { title: document.getElementById('title').innerText, chunks: [{ content: document.getElementById('content').innerText + '\n\n', lang: 'en' }] }; const launchParams = await getImmersiveReaderLaunchParamsAsync(); const token = launchParams.token; const subdomain = launchParams.subdomain; ImmersiveReader.launchAsync(token, subdomain, content); }A nossa aplicação Web está agora pronta. Inicie o aplicativo executando:
npm startAbra o navegador e navegue até . Você deve ver o conteúdo acima na página. Selecione o botão Leitura Avançada para iniciar a Leitura Avançada com o seu conteúdo.
Especifique o idioma do seu conteúdo
O Leitura Avançada suporta muitas línguas diferentes. Você pode especificar o idioma do seu conteúdo seguindo estas etapas.
Abra views\index.pug e adicione o seguinte código abaixo da tag que você adicionou na etapa anterior. Este código adiciona algum conteúdo em espanhol à sua página.
p(id='content-spanish') El estudio de las formas terrestres de la Tierra se llama geografía física. Los accidentes geográficos pueden ser montañas y valles. También pueden ser glaciares, lagos o ríos.Em views\index.pug, adicione o seguinte código acima da chamada a . Este código transmite o conteúdo em espanhol para o Leitura Avançada.
content.chunks.push({ content: document.getElementById('content-spanish').innerText + '\n\n', lang: 'es' });Navegue novamente até . Deves ver o texto em espanhol na página e, quando selecionares Leitura Avançada, ele aparece também no Leitura Avançada.
Especifique a linguagem da interface Leitura Avançada
Por defeito, o idioma da interface Leitura Avançada corresponde às definições linguísticas do navegador. Também pode especificar a linguagem da interface do Leitura Avançada com o seguinte código.
Em views\index.pug, substitua a chamada para pelo código a seguir.
const options = { uiLang: 'fr', } ImmersiveReader.launchAsync(token, subdomain, content, options);Navegue para . Quando inicia o Leitura Avançada, a interface é mostrada em francês.
Lance o Leitura Avançada com conteúdos de matemática
Pode incluir conteúdo matemático no Leitura Avançada usando MathML.
Modifique views\index.pug para incluir o seguinte código acima da chamada para :
const mathML = '<math xmlns="https://www.w3.org/1998/Math/MathML" display="block"> \ <munderover> \ <mo>∫</mo> \ <mn>0</mn> \ <mn>1</mn> \ </munderover> \ <mrow> \ <msup> \ <mi>x</mi> \ <mn>2</mn> \ </msup> \ <mo>ⅆ</mo> \ <mi>x</mi> \ </mrow> \ </math>'; content.chunks.push({ content: mathML, mimeType: 'application/mathml+xml' });Navegue para . Quando abrir o Leitura Avançada e descer até ao fundo, verá a fórmula matemática.
Próximo passo
Pré-requisitos
- Uma subscrição do Azure. Você pode criar um gratuitamente.
- Um recurso Leitura Avançada configurado para autenticação Microsoft Entra. Siga estas instruções para se configurar. Salve a saída da sessão em um arquivo de texto para que você possa configurar as propriedades do ambiente.
- Um IDE como Visual Studio Code.
- Git.
- Clone o SDK Leitura Avançada do GitHub.
Você pode instalar as seguintes ferramentas como parte das instruções neste guia:
- Python e pip. A partir do Python 3.4, o pip é incluído por defeito nos instaladores binários de Python.
- Frasco
- Jinja
- virtualenv e virtualenvwrapper-win para Windows ou virtualenvwrapper para OSX
- O módulo de pedidos
Configurar credenciais de autenticação
Crie um novo arquivo chamado .env no diretório raiz do seu projeto. Cole os seguintes nomes e valores nele. Fornece os valores dados quando criaste o teu recurso Leitura Avançada.
TENANT_ID={YOUR_TENANT_ID}
CLIENT_ID={YOUR_CLIENT_ID}
CLIENT_SECRET={YOUR_CLIENT_SECRET}
SUBDOMAIN={YOUR_SUBDOMAIN}
Não coloque este ficheiro no controlo de versão porque contém informações confidenciais que não devem ser tornadas públicas.
Proteja o ponto de extremidade da API getimmersivereadertoken com alguma forma de autenticação, como OAuth. A autenticação impede que utilizadores não autorizados obtenham tokens para usar contra o seu serviço Leitura Avançada e faturação. Esse trabalho está além do escopo deste tutorial.
Criar uma aplicação web em Python no Windows
Instala Python.
Selecione a caixa Add Python to PATH e selecione Instalação personalizada.
Adicione Recursos Opcionais marcando caixas de seleção e selecione Avançar.
Em Opções Avançadas, defina o caminho de instalação como sua pasta raiz, por exemplo, . Em seguida, selecione Instalar.
Gorjeta
Quando você define um caminho de instalação personalizado, a variável PATH ainda pode apontar para o caminho de instalação padrão. Verifique se o PATH aponta para a pasta personalizada.
Depois de terminar a instalação da Python, abra um prompt de comandos e use cd para ir à pasta Python Scripts.
cd C:\Python312\Scripts
Instale o Flask.
pip install flask
Instale Jinja2. É um motor de templates completo para Python.
pip install jinja2
Instale virtualenv. Esta ferramenta cria ambientes Python isolados.
pip install virtualenv
Instale virtualenvwrapper-win. A ideia por trás do virtualenvwrapper é facilitar o uso do virtualenv.
pip install virtualenvwrapper-win
Instale o módulo de solicitações. Requests é uma biblioteca HTTP licenciada por Apache2, escrita em Python.
pip install requests
Instale o módulo python-dotenv. Este módulo lê o par chave-valor do arquivo .env e os adiciona à variável de ambiente.
pip install python-dotenv
Crie um ambiente virtual.
mkvirtualenv.bat quickstart-python
Use para ir para a pasta raiz do projeto de exemplo.
cd C:\immersive-reader-sdk\js\samples\quickstart-python
Conecte o projeto de exemplo com o ambiente. Esta ação mapeia o ambiente virtual recém-criado para a pasta raiz do projeto de exemplo.
setprojectdir .
Ative o ambiente virtual.
activate
O projeto agora deve estar ativo e você verá algo como no prompt de comando.
Desative o ambiente.
deactivate
O prefixo deve ser removido porque o ambiente está desativado.
Para reativar o ambiente, execute a partir da pasta raiz do projeto de exemplo.
workon quickstart-python
Comece o Leitura Avançada com conteúdos de exemplo
Quando o ambiente estiver ativo, execute o projeto de exemplo inserindo a partir da pasta raiz do projeto de exemplo.
flask run
Abra o navegador e vá para .
Criar uma aplicação web em Python no OSX
Instala Python.
A pasta raiz Python, por exemplo, Python312, deve agora estar na pasta Applications. Abre o Terminal e usa cd para ir à pasta Python.
cd Python312
Instale o pip.
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
Execute o código a seguir para instalar o pip para o usuário conectado no momento para evitar problemas de permissões.
python get-pip.py --user
sudo nano /etc/paths
- Digite sua senha, quando solicitado.
- Adicione o caminho da instalação do pip à variável PATH.
- Vá para a parte inferior do arquivo e insira o caminho que deseja adicionar como o último item da lista, por exemplo, .
- Selecione CTRL+X para sair.
- Digite Y para salvar o buffer modificado.
Pronto! Para testá-lo, em uma nova janela do Terminal, digite .
Instale o Flask.
pip install flask --user
Instale Jinja2. É um motor de templates completo para Python.
pip install Jinja2 --user
Instale virtualenv. Esta ferramenta cria ambientes Python isolados.
pip install virtualenv --user
Instale virtualenvwrapper. A ideia por trás do virtualenvwrapper é facilitar o uso do virtualenv.
pip install virtualenvwrapper --user
Instale o módulo de solicitações. Requests é uma biblioteca HTTP licenciada por Apache2, escrita em Python.
pip install requests --user
Instale o módulo python-dotenv. Este módulo lê o par chave-valor do arquivo .env e os adiciona à variável de ambiente.
pip install python-dotenv --user
Escolha uma pasta onde deseja manter seus ambientes virtuais e execute este comando:
mkdir ~/.virtualenvs
Utilize cd para ir à pasta de aplicação de exemplo do SDK do Leitura Avançada em Python.
cd immersive-reader-sdk/js/samples/quickstart-python
Crie um ambiente virtual.
mkvirtualenv -p /usr/local/bin/python3 quickstart-python
Conecte o projeto de exemplo com o ambiente. Esta ação mapeia o ambiente virtual recém-criado para a pasta raiz do projeto de exemplo.
setprojectdir .
Ative o ambiente virtual.
activate
O projeto agora deve estar ativo e você verá algo como no prompt de comando.
Desative o ambiente.
deactivate
O prefixo deve ser removido porque o ambiente está desativado.
Para reativar o ambiente, execute a partir da pasta raiz do projeto de exemplo.
workon quickstart-python
Comece o Leitura Avançada com conteúdos de exemplo
Quando o ambiente estiver ativo, execute o projeto de exemplo inserindo a partir da pasta raiz do projeto de exemplo.
flask run
Abra o navegador e vá para .
Próximo passo
Pré-requisitos
- Uma subscrição do Azure. Você pode criar um gratuitamente.
- Um recurso Leitura Avançada configurado para autenticação Microsoft Entra. Segue estas instruções para começares a configuração. Salve a saída da sessão em um arquivo de texto para que você possa configurar as propriedades do ambiente.
- .NET SDK instalado.
- Visual Studio Code ou Visual Studio com a carga de trabalho ASP.NET e desenvolvimento web instalada.
Configurar a autenticação
Este guia usa DefaultAzureCredential da biblioteca Azure.Identity para realizar autenticação com o serviço Leitura Avançada. Não é necessário nenhum segredo de cliente no seu código. Localmente, o DefaultAzureCredential usa as suas credenciais assinadas no CLI do Azure ou no Visual Studio. Quando implementado no Azure, utiliza automaticamente a identidade gerida atribuída à sua aplicação.
Precisas apenas do teu recurso Leitura Avançada subdomain. Guarde o valor do subdomínio quando criou o seu recurso Leitura Avançada.
Inicie sessão no Azure para que DefaultAzureCredential possa descobrir as suas credenciais durante o desenvolvimento local:
az login
Assegure o endpoint da API GetTokenAndSubdomain sob algum tipo de autenticação, como OAuth. A autenticação impede que utilizadores não autorizados obtenham tokens para usar contra o seu serviço Leitura Avançada e faturação. Esse trabalho está além do escopo deste tutorial.
Criar uma aplicação web ASP.NET Core MVC
Crie uma nova aplicação web ASP.NET Core MVC.
dotnet new mvc -n QuickstartSampleWebApp
cd QuickstartSampleWebApp
Instale o pacote Azure.Identity para adquirir Microsoft Entra tokens sem quaisquer segredos do cliente:
dotnet add package Azure.Identity
Configurar o controlador
Open Controllers\HomeController.cs e substitua o seu conteúdo pelo seguinte código. Substitui {YOUR_SUBDOMAIN} pelo subdomínio do teu recurso Leitura Avançada. Este controlador utiliza DefaultAzureCredential para adquirir um token de autenticação Microsoft Entra e passa o token e o subdomínio para a visualização.
using System.Threading;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Identity;
using Microsoft.AspNetCore.Mvc;
namespace QuickstartSampleWebApp.Controllers
{
public class HomeController : Controller
{
// Replace with your Immersive Reader resource subdomain.
private const string Subdomain = "{YOUR_SUBDOMAIN}";
private static readonly TokenCredential Credential = new DefaultAzureCredential();
private static readonly string[] Scopes =
new[] { "https://cognitiveservices.azure.com/.default" };
private async Task<string> GetTokenAsync()
{
var tokenRequestContext = new TokenRequestContext(Scopes);
var accessToken = await Credential
.GetTokenAsync(tokenRequestContext, CancellationToken.None)
.ConfigureAwait(false);
return accessToken.Token;
}
public async Task<IActionResult> Index()
{
ViewData["Token"] = await GetTokenAsync();
ViewData["Subdomain"] = Subdomain;
return View();
}
}
}
Lance o Leitura Avançada com conteúdos de exemplo
Abra Views\Home\Index.cshtml e substitua o seu conteúdo pelo seguinte código. Este código preenche a página com conteúdo de exemplo e adiciona um botão que inicia o Leitura Avançada.
@{ ViewData["Title"] = "Immersive Reader C# Quickstart"; var token = ViewData["Token"] as string; var subdomain = ViewData["Subdomain"] as string; } <div class="container"> <button class="immersive-reader-button" data-button-style="iconAndText" data-locale="en"> </button> <h1 id="ir-title">Geography</h1> <div id="ir-content" lang="en-us"> <p> The study of Earth's landforms is called physical geography. Landforms can be mountains and valleys. They can also be glaciers, lakes, or rivers. </p> </div> </div> @section Scripts { <script src="https://ircdname.azureedge.net/immersivereadersdk/immersive-reader-sdk.1.4.0.js"> </script> <script> function handleLaunchImmersiveReader() { const token = "@token"; const subdomain = "@subdomain"; const data = { title: document.getElementById('ir-title').innerText, chunks: [{ content: document.getElementById('ir-content').innerHTML, mimeType: 'text/html' }] }; const options = { onExit: exitCallback }; ImmersiveReader.launchAsync(token, subdomain, data, options) .catch(function (error) { console.log(error); alert('Error in launching the Immersive Reader. Check the console.'); }); } function exitCallback() { console.log('This is the callback function. It is executed when the Immersive Reader closes.'); } document.querySelector('.immersive-reader-button') .addEventListener('click', handleLaunchImmersiveReader); </script> }Inicia a aplicação.
dotnet run
- Abra o seu browser e vá para . Deves ver o conteúdo de exemplo na página. Selecione o botão Leitura Avançada para iniciar a Leitura Avançada com o seu conteúdo.
Especifique o idioma do seu conteúdo
O Leitura Avançada suporta muitas línguas diferentes. Você pode especificar o idioma do seu conteúdo seguindo estas etapas.
Em Views\Home\Index.cshtml, adicione o seguinte parágrafo dentro de , após o parágrafo em inglês existente:
<p lang="es"> El estudio de las formas terrestres de la Tierra se llama geografía física. Los accidentes geográficos pueden ser montañas y valles. También pueden ser glaciares, lagos o ríos. </p>No objeto do bloco de script, atualize o array para incluir o parágrafo em espanhol:
const data = { title: document.getElementById('ir-title').innerText, chunks: [ { content: document.getElementById('ir-content').innerHTML, mimeType: 'text/html' } ] };O Leitura Avançada deteta automaticamente as línguas dentro do conteúdo HTML, pelo que não são necessárias alterações adicionais ao array de chunks.
Navegue novamente até . Deves ver o texto em espanhol na página e, quando selecionares Leitura Avançada, ele aparece também no Leitura Avançada.
Especifique a linguagem da interface Leitura Avançada
Por defeito, a linguagem da interface do Leitura Avançada corresponde às definições linguísticas do seu navegador. Também podes especificar explicitamente.
Em Views\Home\Index.cshtml, atualize o objeto no bloco de script:
const options = { uiLang: 'fr', onExit: exitCallback };Navegue para . Quando inicia o Leitura Avançada, a interface é mostrada em francês.
Lance o Leitura Avançada com conteúdos de matemática
Pode incluir conteúdo matemático no Leitura Avançada usando MathML.
Em Views\Home\Index.cshtml, adicione o seguinte código dentro de , pouco antes da chamada:
const mathML = '<math xmlns="https://www.w3.org/1998/Math/MathML" display="block">' + '<munderover><mo>∫</mo><mn>0</mn><mn>1</mn></munderover>' + '<mrow><msup><mi>x</mi><mn>2</mn></msup><mo>ⅆ</mo><mi>x</mi></mrow>' + '</math>'; data.chunks.push({ content: mathML, mimeType: 'application/mathml+xml' });Navegue para . Quando abrir o Leitura Avançada e descer até ao fundo, verá a fórmula matemática.
Próximo passo
Pré-requisitos
- Uma subscrição do Azure. Você pode criar um gratuitamente.
- Um recurso Leitura Avançada configurado para autenticação Microsoft Entra. Siga estas instruções para se configurar. Salve a saída da sessão em um arquivo de texto para que você possa configurar as propriedades do ambiente.
- Git.
- Clone o SDK Leitura Avançada a partir de GitHub.
- Estúdio Android.
Configurar credenciais de autenticação
Inicie o Android Studio e abra o projeto SDK Leitura Avançada a partir do diretório immersive-reader-sdk/js/samples/quickstart-java-android (Java) ou do diretório immersive-reader-sdk/js/samples/quickstart-kotlin (Kotlin).
Gorjeta
Talvez seja necessário deixar o sistema atualizar os plug-ins do Gradle para pelo menos a versão 8.
Para criar uma nova pasta de ativos, clique com o botão direito do mouse no aplicativo e selecione Pasta -Pasta de ativos na lista suspensa.
Captura de ecrã da opção da pasta Ativos.
Clique com o botão direito do mouse em ativos e selecione Novo -Arquivo. Nomeie o arquivo env.
Captura de tela do campo de entrada de nome para criar o arquivo env.
Adicione os seguintes nomes e valores e forneça valores conforme apropriado. Não coloque este ficheiro no controlo de versão porque contém informações confidenciais que não devem ser tornadas públicas.
TENANT_ID=<YOUR_TENANT_ID> CLIENT_ID=<YOUR_CLIENT_ID> CLIENT_SECRET=<YOUR_CLIENT_SECRET> SUBDOMAIN=<YOUR_SUBDOMAIN>
Comece o Leitura Avançada com conteúdos de exemplo
Escolha um emulador de dispositivo no AVD Manager e execute o projeto.
Próximos passos
Pré-requisitos
- Uma subscrição do Azure. Você pode criar um gratuitamente.
- Um recurso Leitura Avançada configurado para autenticação Microsoft Entra. Siga estas instruções para se configurar. Salve a saída da sessão em um arquivo de texto para que você possa configurar as propriedades do ambiente.
- macOS e Xcode.
- Git.
- Clone o SDK Leitura Avançada do GitHub.
Configurar credenciais de autenticação
No Xcode, selecione Abrir projeto existente. Abra o arquivo immersive-reader-sdk/js/samples/ios/quickstart-swift.xcodeproj.
No menu superior, selecione ProdutoEsquemaEditar Esquema.
No modo de exibição Executar, selecione a guia Argumentos.
Na seção Variáveis de Ambiente, adicione os seguintes nomes e valores. Fornece os valores dados quando criaste o teu recurso Leitura Avançada.
TENANT_ID=<YOUR_TENANT_ID> CLIENT_ID=<YOUR_CLIENT_ID> CLIENT_SECRET<YOUR_CLIENT_SECRET> SUBDOMAIN=<YOUR_SUBDOMAIN>
Não confirme essa alteração no controle do código-fonte porque ela contém segredos que não devem ser tornados públicos.
Comece o Leitura Avançada com conteúdos de exemplo
No Xcode, selecione um simulador de dispositivo e execute o projeto a partir dos controles ou digite Ctrl+R.