Visão geral
O OneSignal oferece dois editores de mensagens in-app:- Interface gráfica Drag & Drop para criadores não técnicos
- Editor HTML para desenvolvedores que desejam controle pixel‑perfeito sobre layout, comportamento e responsividade.

Imagem ilustrando código in-app ao lado de uma renderização in-app
- Layouts: Construir layouts responsivos complexos (por exemplo, CTAs lado a lado).
- Formulários: Coletar inputs inline (email, feedback, pesquisa).
- Fontes e Marca: Usar fontes web personalizadas e variáveis CSS.
- Ações JS: Rastrear cliques, marcar usuários, enviar outcomes e muito mais.
Requisitos
- iOS: 3.9.0+
- Android: 4.6.3+
- Se seu aplicativo usa um SDK mais antigo, mensagens in-app serão renderizadas em um layout Center Modal.
Criar e pré-visualizar um In‑App HTML
Vá para Messages > New In-App para criar, editar, testar, pausar, duplicar ou excluir suas mensagens in-app.HTML Templates
Comece rapidamente com templates pré-construídos.
In-app JavaScript Library
Use nossa biblioteca JavaScript para rastrear interações e acionar comportamentos in-app.

Imagem mostrando o Editor HTML ao lado da pré-visualização
Adicionar labels rastreáveis
Adicionedata-onesignal-unique-label em elementos interativos para que os cliques sejam rastreados e acionáveis.
Vincular ações de clique com JavaScript
Saiba mais na documentação da Biblioteca JS In-App.
Suporte a assets
Assets carregam no momento da renderização a partir das URLs que você fornece.Personalização
Insira dinamicamente valores de dados do usuário usando sintaxe Liquid:- Texto dentro de elementos como
div,p,li - Dentro de blocos
<style> - Em atributos
href,src,actionedata
- Dentro de tags
<script> - Em conteúdo aninhado complexo onde o parsing se torna ambíguo, por exemplo:
Acessibilidade e design responsivo
Use media queries CSS e tipografia de plataforma para adaptar ao tamanho do dispositivo e configurações de texto do OS.Áreas seguras (notches, barras home)
Dispositivos modernos têm áreas seguras (como notches ou barras home). Use variáveissafe-area-inset-* para adicionar padding ao seu layout:
Estilização de modo escuro
Dispositivos móveis e aplicativos frequentemente aplicam ajustes automáticos de modo escuro com base no tema do sistema do usuário. Isso pode fazer com que mensagens in-app (IAMs) apareçam de forma diferente do pretendido. Por exemplo, texto pode inverter cor ou imagens de fundo podem parecer escurecidas. Para garantir que seu IAM tenha aparência consistente em temas claro e escuro, defina estilos explícitos para ambos os modos.Melhores práticas
- Defina cores explícitas. Sempre defina cores de texto, fundo e botão diretamente em seu HTML ou CSS. Evite cores transparentes ou padrão que dependam do comportamento do sistema.
-
Use media queries
prefers-color-scheme. Você pode incluir substituições de modo escuro com: - Otimize imagens para ambos os modos. Use PNGs transparentes ou SVGs sempre que possível. Para imagens de fundo, teste a legibilidade em temas claro e escuro.
- Evite inversões duplas. Algumas versões de Android e iOS podem ajustar cores automaticamente. Usar estilos explícitos de modo escuro ajuda a evitar que seu tema escuro personalizado seja invertido novamente pelo OS.
- Pré-visualize em ambos os modos. Use os temas escuro e claro do seu aplicativo para verificar se texto, botões e fundos têm contraste suficiente e permanecem acessíveis.
Teste em plataformas diferentes. Android WebView, iOS WKWebView e builds web tratam modo escuro de forma diferente. Sempre pré-visualize sua mensagem in-app em ambos os temas antes de publicar.
Incorporar vídeos
Você pode incorporar vídeos (por exemplo, YouTube, Vimeo) diretamente em suas mensagens in-app usando<iframe>.
Isso é útil para demos, promos ou fluxos de onboarding.
A maioria dos navegadores só permite autoplay se o vídeo começar mudo, então sempre inclua &mute=1 na URL de incorporação.
Vídeo com autoplay pode impactar o desempenho. Mantenha vídeos curtos e evite múltiplas incorporações com autoplay em um único in-app.
Exemplo: Incorporação de YouTube com autoplay
O snippet abaixo mostra como centralizar um vídeo do YouTube no meio do in-app com um tamanho fixo (560×315):Entendendo o comportamento de autoplay
- A URL de incorporação (/embed/VIDEO_ID) é necessária para autoplay — links normais watch?v= não funcionarão.
- Adicionar ?autoplay=1&mute=1 garante que o vídeo reproduza automaticamente e cumpra as regras de autoplay do navegador.
- O atributo allow=“autoplay; encrypted-media” concede permissão para autoplay.
- O .video-box usa um tamanho fixo de 560×315px (padrão 16:9 do YouTube) para que o vídeo apareça contido em vez de esticar para tela cheia.
- O body é definido como um container flex com justify-content: center e align-items: center para posicionar a caixa de vídeo no meio exato da tela.
Dicas de desempenho
- Prefira CSS crítico inline; adie scripts pesados.
- Otimize imagens (dimensionadas
<img>comobject-fit), use formatos modernos quando possível. - Mantenha payloads HTML concisos; evite grandes blobs base64.
- Use fontes do sistema ou hospede fontes web performáticas com
font-display: swap. - Reduza tamanhos de arquivo e use resolução adequada:
- Diretrizes de imagem da Apple
- Visão geral de imagem do Android
- OneSignal não tem afiliação com imagekit.io, embora seja uma ferramenta útil para otimização.
Testar em dispositivos
Envie mensagens de teste frequentemente para confirmar comportamento e layout em diferentes tipos de dispositivo. Veja Encontrar e definir assinaturas de teste.FAQ
Posso remover o fundo cinza ou sombra de in-apps estilo banner?
Sim. Para banners superiores/inferiores, atualize seus SDKs e defina: iOS 5.1.5+Posso reutilizar templates in-app de outros provedores?
Sim. Cole seu HTML no editor e substitua analytics/ações pelos métodos JS In‑App do OneSignal.Não tenho templates. Como começo?
Use o template inicial fornecido ou navegue pelos templates disponíveis. Alguma experiência com HTML/CSS é recomendada.Qual versão do SDK é necessária?
- iOS: 3.9.0+
- Android: 4.6.3+