Emuladores
- Tópicos:
- Developing
Criado para:
- Developer
O Adobe Experience Manager (AEM) permite que os autores visualizem uma página em um emulador que simula o ambiente em que um usuário final visualizará a página, como em um dispositivo móvel ou em um cliente de email.
A estrutura do emulador de AEM:
- Fornece criação de conteúdo em uma interface de usuário simulada, por exemplo, um dispositivo móvel ou um cliente de email (usado para criar informativos).
- Adapta o conteúdo da página de acordo com a interface do usuário simulada.
- Permite a criação de emuladores personalizados.
Características dos emuladores
Um emulador:
- É baseado em ExtJS.
- Opera no DOM da página.
- Sua aparência é regulamentada por CSS.
- Suporta plug-ins (por exemplo, o plug-in de rotação de dispositivos móveis).
- Está ativo somente no autor.
- Seu componente base está em
/libs/wcm/emulator/components/base
.
Como o emulador transforma o conteúdo
O emulador funciona embrulhando o conteúdo do corpo de HTML em DIVs do emulador. Por exemplo, o seguinte código html:
<body>
<div id="wrapper" class="page mobilecontentpage ">
<div class="topnav mobiletopnav">
...
</div>
...
</div>
</body>
é transformado no seguinte código html após o início do emulador:
<body>
<div id="cq-emulator-toolbar">
...
</div>
<div id="cq-emulator-wrapper">
<div id="cq-emulator-device">
<div class=" android vertical" id="cq-emulator">
...
<div class=" android vertical" id="cq-emulator-content">
...
<div id="wrapper" class="page mobilecontentpage">
...
</div>
...
</div>
</div>
</div>
</div>
...
</body>
Duas tags div foram adicionadas:
-
o div com id
cq-emulator
manter o emulador como um todo e -
o div com id
cq-emulator-content
representando a janela de visualização/tela/área de conteúdo do dispositivo na qual o conteúdo da página reside.
Novas classes CSS também são atribuídas aos novos mergulhadores do emulador: eles representam o nome do emulador atual.
Os plug-ins de um emulador podem estender ainda mais a lista de classes CSS atribuídas, como no exemplo do plug-in de rotação, inserindo uma classe "vertical" ou "horizontal" dependendo da rotação atual do dispositivo.
Dessa forma, a aparência completa do emulador pode ser controlada com classes CSS correspondentes às IDs e classes CSS dos mergulhadores.
Emuladores móveis
Os emuladores móveis existentes:
-
Estão abaixo de /libs/wcm/mobile/components/emulators.
-
Estão disponíveis através do servlet JSON em:
http://localhost:4502/bin/wcm/mobile/emulators.json
Quando o componente de página depende do componente de página móvel ( /libs/wcm/mobile/components/page
), a funcionalidade do emulador é integrada automaticamente na página por meio do seguinte mecanismo:
-
O componente de página móvel
head.jsp
O inclui o componente de inicialização do emulador associado do grupo de dispositivos (somente no modo de autor) e a renderização de CSS do grupo de dispositivos por meio de:deviceGroup.drawHead(pageContext);
-
O método
DeviceGroup.drawHead(pageContext)
inclui o componente init do emulador, ou seja, chama a funçãoinit.html.jsp
do componente emulador. Se o componente emulador não tiver seu próprioinit.html.jsp
e depende do emulador de base móvel (wcm/mobile/components/emulators/base)
, o script de inicialização do emulador de base móvel é chamado de (/libs/wcm/mobile/components/emulators/base/init.html.jsp
). -
O script de inicialização do emulador de base móvel define por meio do Javascript:
-
A configuração de todos os emuladores definidos para a página (emulatorConfigs)
-
O gerenciador do emulador que integra a funcionalidade do emulador na página por meio de:
emulatorMgr.launch(config)
;O gerenciador do emulador é definido por:
/libs/wcm/emulator/widgets/source/EmulatorManager.js
-
Criando um emulador móvel personalizado
Para criar um emulador móvel personalizado:
-
Abaixo
/apps/myapp/components/emulators
criar o componentemyemulator
(tipo de nó:cq:Component
). -
Defina a propriedade
sling:resourceSuperType
para/libs/wcm/mobile/components/emulators/base
-
Definir uma biblioteca de cliente CSS com categoria
cq.wcm.mobile.emulator
para a aparência do emulador: name =css
, tipo de nó =cq:ClientLibrary
Como exemplo, você pode se referir ao nó
/libs/wcm/mobile/components/emulators/iPhone/css
-
Se necessário, defina uma biblioteca do cliente JS, por exemplo, para definir um plug-in específico: name = js, tipo de nó = cq:ClientLibrary
Como exemplo, você pode se referir ao nó
/libs/wcm/mobile/components/emulators/base/js
-
Se o emulador suportar funcionalidades específicas definidas por plug-ins (como a rolagem de toque), crie um nó de configuração abaixo do emulador: name =
cq:emulatorConfig
, tipo de nó =nt:unstructured
e adicione a propriedade que define o plug-in:-
Nome =
canRotate
, Tipo =Boolean
, Valor =true
: para incluir a funcionalidade de rotação. -
Nome =
touchScrolling
, Tipo =Boolean
, Valor =true
: para incluir a funcionalidade de rolagem de toque.
Mais funcionalidades podem ser adicionadas definindo seus próprios plug-ins.
-
Experience Manager
- Visão geral do Guia do usuário para desenvolvimento
- Introdução para desenvolvedores
- Introdução ao desenvolvimento do AEM Sites - Tutorial de WKND
- AEM Conceitos principais
- Estrutura da interface de usuário habilitada para toque do AEM
- Conceitos da interface de usuário habilitada para toque do AEM
- Desenvolvimento de AEM - Diretrizes e práticas recomendadas
- Uso de bibliotecas do cliente
- Desenvolvimento e diff de página
- Limitações do editor
- Quadro de proteção do QREF
- Modelagem de Dados - Modelo de David Nuescheler
- Contribuição para AEM
- Segurança
- Materiais de referência
- Criar um site com recursos completos (interface clássica)
- Designs and the Designer (Classic UI)
- Plataforma
- Folha de características do Sling
- Uso de adaptadores Sling
- Bibliotecas de tags
- Modelos
- Uso da Fusão de Recursos do Sling em AEM
- Sobreposições
- Convenções de nomenclatura
- Criação de um novo componente de campo da interface do usuário do Granite
- Query Builder
- Marcação com tags
- Personalização de páginas mostradas pelo Manipulador de erros
- Tipos de nó personalizados
- Adicionar fontes para renderização de gráficos
- Conexão com Bancos de Dados SQL
- Exteriorização de URLs
- Criação e consumo de trabalhos para descarregamento
- Configuração do uso de cookies
- Como acessar programaticamente o JCR AEM
- Integração de serviços com o console JMX
- Desenvolvimento do editor em massa
- Desenvolvimento de relatórios
- eCommerce
- Componentes
- Componentes principais
- Sistema de estilos
- Visão geral dos componentes
- Componentes AEM - Noções básicas
- Desenvolvimento de componentes de AEM
- Desenvolvimento de componentes de AEM - Amostras de código
- Exportador JSON para serviços de conteúdo
- Ativação de exportação em JSON para um componente
- Editor de imagem
- Tag de decoração
- Uso de condições de ocultação
- Configuração de vários editores no local
- Modo de desenvolvedor
- Testar sua interface do usuário
- Componentes para fragmentos de conteúdo
- Obter informações de página no formato JSON
- Internacionalização
- Componentes da interface clássica
- Gerenciamento de experiência headless
- Sem cabeçalho e híbrido com AEM
- Ativação da exportação em JSON para um componente
- Aplicativos de página única
- Introdução e passo a passo do SPA
- Tutorial WKND do SPA
- Introdução ao SPA no AEM - React
- Introdução ao SPA no AEM - Angular
- Implementação de um componente de reação para SPA
- Aprofundamentos de SPA
- Visão geral do editor de SPA
- Desenvolvimento de SPAs para o AEM
- Blueprint do SPA
- Componente de página SPA
- Modelo dinâmico para mapeamento de componentes para SPA
- Roteamento do Modelo de SPA
- Integração do SPA e Adobe Experience Platform Launch
- Renderização de SPA e do servidor
- Materiais de referência SPA
- API HTTP
- Fragmentos de conteúdo
- Fragmentos de experiência
- Ferramentas de desenvolvimento
- Ferramentas de desenvolvimento
- Ferramentas de Modernização do AEM
- Editor de caixa de diálogo
- Ferramenta de conversão de caixa de diálogo
- Desenvolvimento com o CRXDE Lite
- Gerenciamento de pacotes usando o Maven
- Como desenvolver projetos AEM usando o Eclipse
- Como criar projetos AEM usando o Apache Maven
- Como desenvolver projetos AEM usando o IntelliJ IDEA
- Como usar a ferramenta VLT
- Como usar a ferramenta Servidor proxy
- Extensão de colchetes AEM
- Ferramentas de desenvolvedor do AEM para Eclipse
- Ferramenta AEM Repo
- Personalização
- ContextHub
- Referência de API do Javascript do ContextHub
- Extensão do ContextHub
- Adicionar o ContextHub às páginas e acessar armazenamentos
- Exemplos de candidatos à loja do ContextHub
- Exemplos de tipos de módulo da interface do usuário do ContextHub
- Diagnósticos do ContextHub
- Desenvolvimento de conteúdo direcionado
- ClientContext
- Extensão de AEM
- Personalização da criação de página
- Personalização dos consoles
- Personalização de exibições das propriedades da página
- Configurar sua página para a edição de itens em massa das propriedades da página
- Personalização e extensão de fragmentos de conteúdo
- Extensão de fluxos de trabalho
- Extensão do Gerenciador de vários sites
- Rastreamento e análise
- Cloud Services
- Criação de extensões personalizadas
- Forms
- Integração de serviços com o console JMX
- Desenvolvimento do editor em massa
- Extensão da interface clássica
- Testes
- Planejamento
- Quais ambientes de teste serão necessários?
- Definição dos casos de teste
- Teste - quando e com quem?
- Compilação do plano de teste
- Rastrear resultados e fornecer feedback
- Ferramentas de teste e rastreamento
- Aceitação e aprovação
- A próxima versão…
- Listas de verificação
- Dia difícil
- Testar sua interface do usuário
- Práticas recomendadas
- Visão geral das práticas recomendadas
- Diretrizes de desenvolvimento de AEM e práticas recomendadas
- Práticas recomendadas de desenvolvimento
- Arquitetura de conteúdo
- Arquitetura de software
- Implementação de referência We.Retail
- Implementação de referência We.Retail
- Experimentação de fragmentos de conteúdo no We.Retail
- Como experimentar os Componentes principais no We.Retail
- Tentando modelos editáveis no We.Retail
- Tentando um layout responsivo no We.Retail
- Tentar a estrutura do site globalizado no We.Retail
- Experiência de fragmentos de experiência no We.Retail
- Dicas de codificação
- armadilhas de código
- Pacotes OSGI
- Integração JCR
- Amostras de código
- Solução de problemas de consultas lentas
- Web móvel