{"id":1555,"date":"2024-09-20T15:14:25","date_gmt":"2024-09-20T18:14:25","guid":{"rendered":"https:\/\/thiagorossi.com.br\/blog\/?p=1555"},"modified":"2025-11-26T16:15:11","modified_gmt":"2025-11-26T19:15:11","slug":"solicitacao-de-instalacao-pwa","status":"publish","type":"post","link":"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/","title":{"rendered":"Solicita\u00e7\u00e3o de instala\u00e7\u00e3o PWA"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Solicita\u00e7\u00e3o de instala\u00e7\u00e3o PWA<\/strong>: O momento em que um usu\u00e1rio \u00e9 convidado a instalar um Progressive Web App (PWA) \u00e9 um ponto de convers\u00e3o cr\u00edtico, conhecido como <strong>&#8220;Install Prompt&#8221;<\/strong>. No entanto, a exibi\u00e7\u00e3o desse convite n\u00e3o deve ser passiva, mas sim uma experi\u00eancia contextualizada e controlada pelo desenvolvedor.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Para isso, os navegadores modernos disparam o evento <strong><code>beforeinstallprompt<\/code><\/strong>, que permite que voc\u00ea <strong>cancele o <em>prompt<\/em> nativo<\/strong> e o dispare em um momento mais oportuno e persuasivo.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">1. \ud83d\uded1 Interceptando o Evento <code>beforeinstallprompt<\/code><\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O navegador s\u00f3 dispara esse evento quando o PWA j\u00e1 atende a todos os <strong>crit\u00e9rios de elegibilidade<\/strong> (Manifest, Service Worker, HTTPS, etc.). Ao intercept\u00e1-lo, voc\u00ea impede que a caixa de di\u00e1logo nativa apare\u00e7a imediatamente, ganhando controle total sobre a experi\u00eancia.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Armazenando o Evento<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O segredo \u00e9 armazenar o objeto do evento (<code>deferredPrompt<\/code>) para cham\u00e1-lo posteriormente, quando o seu bot\u00e3o de instala\u00e7\u00e3o personalizado for clicado.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">JavaScript<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>let deferredPrompt;\n\n\/\/ 1. Ouve o evento disparado pelo navegador\nwindow.addEventListener('beforeinstallprompt', (event) =&gt; {\n  \/\/ Impede o prompt nativo de aparecer imediatamente\n  event.preventDefault(); \n  \n  \/\/ 2. Armazena o evento para uso posterior\n  deferredPrompt = event; \n  \n  \/\/ 3. Exibe o seu bot\u00e3o\/elemento de instala\u00e7\u00e3o personalizado\n  showInstallButton(); \n});\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">2. \ud83d\uddb1\ufe0f Disparando o Prompt de Instala\u00e7\u00e3o (UX Customizada)<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Com o evento armazenado, voc\u00ea pode associ\u00e1-lo a um elemento de interface do usu\u00e1rio personalizado (<code>#install-button<\/code>), garantindo que o <em>prompt<\/em> seja exibido apenas quando o usu\u00e1rio demonstrar interesse (clicando no bot\u00e3o).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">O <code>prompt()<\/code> e <code>userChoice<\/code><\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Ao clicar no bot\u00e3o personalizado, voc\u00ea chama o m\u00e9todo <code>prompt()<\/code> e, em seguida, usa a <strong>Promise<\/strong> <code>userChoice<\/code> para rastrear o resultado:<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">JavaScript<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const installButton = document.getElementById('install-button');\n\ninstallButton.addEventListener('click', () =&gt; {\n  \/\/ Verifica se o evento est\u00e1 dispon\u00edvel\n  if (deferredPrompt) {\n    \n    \/\/ 1. Dispara o prompt nativo do navegador\n    deferredPrompt.prompt(); \n    \n    \/\/ 2. Rastreia a escolha do usu\u00e1rio\n    deferredPrompt.userChoice.then((choiceResult) =&gt; {\n      \n      if (choiceResult.outcome === 'accepted') {\n        console.log('O usu\u00e1rio aceitou a instala\u00e7\u00e3o.');\n      } else {\n        console.log('O usu\u00e1rio rejeitou a instala\u00e7\u00e3o.');\n      }\n      \n      \/\/ 3. O prompt n\u00e3o ser\u00e1 exibido novamente at\u00e9 a pr\u00f3xima navega\u00e7\u00e3o\n      deferredPrompt = null;\n      hideInstallButton(); \n    });\n  }\n});\n<\/code><\/pre>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">3. \ud83c\udfaf Otimizando o Momento (Onde Enviar o Comando)<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">O sucesso da instala\u00e7\u00e3o depende de voc\u00ea convidar o usu\u00e1rio no <strong>momento de maior engajamento ou valor percebido<\/strong>. Evite <em>pop-ups<\/em> intrusivos no carregamento da p\u00e1gina.<\/p>\n\n\n\n<figure class=\"wp-block-table has-medium-font-size\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Estrat\u00e9gia<\/strong><\/td><td><strong>Momento Ideal<\/strong><\/td><td><strong>Por que Funciona?<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>P\u00f3s-Engajamento<\/strong><\/td><td>Ap\u00f3s a segunda ou terceira visita, ou ap\u00f3s 5 minutos de uso.<\/td><td>Garante que o usu\u00e1rio j\u00e1 conhece e valoriza o PWA.<\/td><\/tr><tr><td><strong>P\u00f3s-Convers\u00e3o<\/strong><\/td><td>Ap\u00f3s uma a\u00e7\u00e3o de valor (ex: concluir uma compra, salvar um item favorito, publicar um post).<\/td><td>O usu\u00e1rio acabou de obter valor e est\u00e1 propenso a aprofundar o relacionamento.<\/td><\/tr><tr><td><strong>Explicita\u00e7\u00e3o<\/strong><\/td><td>Em um menu lateral ou p\u00e1gina &#8220;Sobre&#8221; do app.<\/td><td>Permite que usu\u00e1rios proativos encontrem a op\u00e7\u00e3o sem interrup\u00e7\u00e3o.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">4. \ud83d\udcca Coleta de An\u00e1lises e Fallback<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">A customiza\u00e7\u00e3o do <em>prompt<\/em> permite rastrear a efic\u00e1cia da sua estrat\u00e9gia de instala\u00e7\u00e3o e fornecer <em>feedback<\/em> caso a instala\u00e7\u00e3o n\u00e3o ocorra.<\/p>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">A. An\u00e1lise de Dados<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Utilize a Promise <code>userChoice<\/code> para enviar dados para ferramentas de an\u00e1lise (Google Analytics, etc.). \u00c9 crucial rastrear:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>Taxa de Aceita\u00e7\u00e3o vs. Rejei\u00e7\u00e3o:<\/strong> A m\u00e9trica mais importante para avaliar a qualidade da sua mensagem.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Contexto de Instala\u00e7\u00e3o:<\/strong> Se o usu\u00e1rio aceitou o <em>prompt<\/em> em uma p\u00e1gina espec\u00edfica ou ap\u00f3s uma a\u00e7\u00e3o espec\u00edfica.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">B. Mecanismos de Fallback<\/h3>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Se o navegador n\u00e3o disparar o evento <code>beforeinstallprompt<\/code> (geralmente no iOS, onde o controle \u00e9 limitado, ou em navegadores que n\u00e3o suportam o evento), voc\u00ea deve instruir o usu\u00e1rio.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>iOS Fallback:<\/strong> Exiba um elemento de interface que instrui o usu\u00e1rio a usar o bot\u00e3o <strong>Compartilhar<\/strong> do Safari e, em seguida, a op\u00e7\u00e3o <strong>&#8220;Adicionar \u00e0 Tela de In\u00edcio&#8221;<\/strong>.<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>Mensagem de Rejei\u00e7\u00e3o:<\/strong> Se <code>choiceResult.outcome<\/code> for <code>'dismissed'<\/code>, voc\u00ea pode mostrar uma mensagem amig\u00e1vel de <strong>Fallback<\/strong> ou um lembrete sutil que pode ser reativado mais tarde, respeitando a decis\u00e3o do usu\u00e1rio.<\/li>\n<\/ul>\n\n\n\n<div style=\"height:35px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-large-font-size\">\u2705 Conclus\u00e3o<\/h2>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong>Solicita\u00e7\u00e3o de instala\u00e7\u00e3o PWA<\/strong>: O evento <strong><code>beforeinstallprompt<\/code><\/strong> transforma a instala\u00e7\u00e3o de PWAs de um evento passivo do navegador em uma <strong>experi\u00eancia de convers\u00e3o controlada e otimizada<\/strong> por voc\u00ea. Ao interceptar e armazenar o evento, voc\u00ea ganha a capacidade de dispar\u00e1-lo em um momento t\u00e1tico (p\u00f3s-engajamento ou p\u00f3s-convers\u00e3o), maximizando as chances de o usu\u00e1rio aceitar a instala\u00e7\u00e3o e transformar-se em um usu\u00e1rio altamente engajado e fiel.<\/p>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">Toda jornada tem um in\u00edcio, e o in\u00edcio para se tornar um desenvolvedor web \u00e9 dominar as seguintes tecnologias, que voc\u00ea encontra aqui mesmo:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/html\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/html.webp\" alt=\"HTML\" class=\"wp-image-600\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/html.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/html-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">HTML<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/css\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/Capa-Artigos-Linux.webp\" alt=\"CSS\" class=\"wp-image-702\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/Capa-Artigos-Linux.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/Capa-Artigos-Linux-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">CSS<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"\/category\/javascript\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"426\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript.webp\" alt=\"Javascript\" class=\"wp-image-804\" srcset=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript.webp 758w, https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/javascript-300x169.webp 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><\/a><figcaption class=\"wp-element-caption\">JavaScript<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\">E se voc\u00ea gosta do nosso conte\u00fado, n\u00e3o deixe de contribuir adquirindo os servi\u00e7os e produtos dos nossos apoiadores e empresas que somos associados:<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/hostinger.com.br\/?REFERRALCODE=1THIAGO62\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/03\/hostinger.png\" alt=\"Hospedagem Hostinger\" class=\"wp-image-92\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNDYlc\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/ofertas-amazon.webp\" alt=\"Ofertas Amazon\" class=\"wp-image-1308\"\/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/amzn.to\/3SNKmt0\"><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"250\" src=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/amazonprime.webp\" alt=\"Amazon Prime\" class=\"wp-image-1307\"\/><\/a><\/figure>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de leitura: <\/span> <span class=\"rt-time\"> 4<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span>Solicita\u00e7\u00e3o de instala\u00e7\u00e3o PWA: O momento em que um usu\u00e1rio \u00e9 convidado a instalar um&#8230;<\/p>\n","protected":false},"author":1,"featured_media":1497,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-1555","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pwa","wpcat-16-id"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Solicita\u00e7\u00e3o de instala\u00e7\u00e3o PWA - BLOG THIAGO ROSSI<\/title>\n<meta name=\"description\" content=\"A solicita\u00e7\u00e3o de instala\u00e7\u00e3o \u00e9 um momento crucial na jornada do usu\u00e1rio com um Progressive Web App (PWA). Ao apresentar a op\u00e7\u00e3o de instalar...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Solicita\u00e7\u00e3o de instala\u00e7\u00e3o PWA - BLOG THIAGO ROSSI\" \/>\n<meta property=\"og:description\" content=\"A solicita\u00e7\u00e3o de instala\u00e7\u00e3o \u00e9 um momento crucial na jornada do usu\u00e1rio com um Progressive Web App (PWA). Ao apresentar a op\u00e7\u00e3o de instalar...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/\" \/>\n<meta property=\"og:site_name\" content=\"BLOG THIAGO ROSSI\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-20T18:14:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-26T19:15:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/Capa-Artigos.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"758\" \/>\n\t<meta property=\"og:image:height\" content=\"426\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Thiago Rossi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Thiago Rossi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/solicitacao-de-instalacao-pwa\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/solicitacao-de-instalacao-pwa\\\/\"},\"author\":{\"name\":\"Thiago Rossi\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\"},\"headline\":\"Solicita\u00e7\u00e3o de instala\u00e7\u00e3o PWA\",\"datePublished\":\"2024-09-20T18:14:25+00:00\",\"dateModified\":\"2025-11-26T19:15:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/solicitacao-de-instalacao-pwa\\\/\"},\"wordCount\":682,\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/solicitacao-de-instalacao-pwa\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/Capa-Artigos.webp\",\"articleSection\":[\"PWA\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/solicitacao-de-instalacao-pwa\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/solicitacao-de-instalacao-pwa\\\/\",\"name\":\"Solicita\u00e7\u00e3o de instala\u00e7\u00e3o PWA - BLOG THIAGO ROSSI\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/solicitacao-de-instalacao-pwa\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/solicitacao-de-instalacao-pwa\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/Capa-Artigos.webp\",\"datePublished\":\"2024-09-20T18:14:25+00:00\",\"dateModified\":\"2025-11-26T19:15:11+00:00\",\"description\":\"A solicita\u00e7\u00e3o de instala\u00e7\u00e3o \u00e9 um momento crucial na jornada do usu\u00e1rio com um Progressive Web App (PWA). Ao apresentar a op\u00e7\u00e3o de instalar...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/solicitacao-de-instalacao-pwa\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/solicitacao-de-instalacao-pwa\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/solicitacao-de-instalacao-pwa\\\/#primaryimage\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/Capa-Artigos.webp\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/08\\\/Capa-Artigos.webp\",\"width\":758,\"height\":426,\"caption\":\"PWA\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/solicitacao-de-instalacao-pwa\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Solicita\u00e7\u00e3o de instala\u00e7\u00e3o PWA\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"name\":\"THIAGO ROSSI\",\"description\":\"Mais de 20 anos de experi\u00eancia no mercado de TI!\",\"publisher\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\"},\"alternateName\":\"TR | CURSO WEB DEV\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#organization\",\"name\":\"THIAGO ROSSI\",\"alternateName\":\"TR | CURSO WEB DEV\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"contentUrl\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/04\\\/new-logo.webp\",\"width\":300,\"height\":300,\"caption\":\"THIAGO ROSSI\"},\"image\":{\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/5f28286948ec2afdeb2e044a2196cd87\",\"name\":\"Thiago Rossi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g\",\"caption\":\"Thiago Rossi\"},\"description\":\"Com mais de 20 anos de jornada na tecnologia, minha trajet\u00f3ria evoluiu do ensino t\u00e9cnico \u00e0 arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de solu\u00e7\u00f5es de Intelig\u00eancia Artificial nativa e an\u00e1lise de dados p\u00fablicos, utilizando o ecossistema PHP para transformar dados brutos em transpar\u00eancia e efici\u00eancia. Como autor e desenvolvedor, acredito na democratiza\u00e7\u00e3o do conhecimento. Essa vis\u00e3o resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura at\u00e9 os bastidores da ind\u00fastria de Jogos e IA. No universo de Game Design, sou autor do livro \\\"GDD \u2013 O Guia Definitivo\\\" e documento ativamente meus processos atrav\u00e9s de DevLogs, unindo rigor t\u00e9cnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso \u00e9 conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.\",\"sameAs\":[\"https:\\\/\\\/thiagorossi.com.br\\\/blog\",\"https:\\\/\\\/instagram.com\\\/thiagorossix86\",\"https:\\\/\\\/linkedin.com\\\/in\\\/thiagox86\"],\"url\":\"https:\\\/\\\/thiagorossi.com.br\\\/blog\\\/author\\\/thiagorossi\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Solicita\u00e7\u00e3o de instala\u00e7\u00e3o PWA - BLOG THIAGO ROSSI","description":"A solicita\u00e7\u00e3o de instala\u00e7\u00e3o \u00e9 um momento crucial na jornada do usu\u00e1rio com um Progressive Web App (PWA). Ao apresentar a op\u00e7\u00e3o de instalar...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/","og_locale":"pt_BR","og_type":"article","og_title":"Solicita\u00e7\u00e3o de instala\u00e7\u00e3o PWA - BLOG THIAGO ROSSI","og_description":"A solicita\u00e7\u00e3o de instala\u00e7\u00e3o \u00e9 um momento crucial na jornada do usu\u00e1rio com um Progressive Web App (PWA). Ao apresentar a op\u00e7\u00e3o de instalar...","og_url":"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/","og_site_name":"BLOG THIAGO ROSSI","article_published_time":"2024-09-20T18:14:25+00:00","article_modified_time":"2025-11-26T19:15:11+00:00","og_image":[{"width":758,"height":426,"url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/Capa-Artigos.webp","type":"image\/webp"}],"author":"Thiago Rossi","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Thiago Rossi","Est. tempo de leitura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/#article","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/"},"author":{"name":"Thiago Rossi","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87"},"headline":"Solicita\u00e7\u00e3o de instala\u00e7\u00e3o PWA","datePublished":"2024-09-20T18:14:25+00:00","dateModified":"2025-11-26T19:15:11+00:00","mainEntityOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/"},"wordCount":682,"publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/Capa-Artigos.webp","articleSection":["PWA"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/","url":"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/","name":"Solicita\u00e7\u00e3o de instala\u00e7\u00e3o PWA - BLOG THIAGO ROSSI","isPartOf":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/#primaryimage"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/#primaryimage"},"thumbnailUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/Capa-Artigos.webp","datePublished":"2024-09-20T18:14:25+00:00","dateModified":"2025-11-26T19:15:11+00:00","description":"A solicita\u00e7\u00e3o de instala\u00e7\u00e3o \u00e9 um momento crucial na jornada do usu\u00e1rio com um Progressive Web App (PWA). Ao apresentar a op\u00e7\u00e3o de instalar...","breadcrumb":{"@id":"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/#primaryimage","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/Capa-Artigos.webp","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/08\/Capa-Artigos.webp","width":758,"height":426,"caption":"PWA"},{"@type":"BreadcrumbList","@id":"https:\/\/thiagorossi.com.br\/blog\/solicitacao-de-instalacao-pwa\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thiagorossi.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Solicita\u00e7\u00e3o de instala\u00e7\u00e3o PWA"}]},{"@type":"WebSite","@id":"https:\/\/thiagorossi.com.br\/blog\/#website","url":"https:\/\/thiagorossi.com.br\/blog\/","name":"THIAGO ROSSI","description":"Mais de 20 anos de experi\u00eancia no mercado de TI!","publisher":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#organization"},"alternateName":"TR | CURSO WEB DEV","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thiagorossi.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/thiagorossi.com.br\/blog\/#organization","name":"THIAGO ROSSI","alternateName":"TR | CURSO WEB DEV","url":"https:\/\/thiagorossi.com.br\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","contentUrl":"https:\/\/thiagorossi.com.br\/blog\/wp-content\/uploads\/2024\/04\/new-logo.webp","width":300,"height":300,"caption":"THIAGO ROSSI"},"image":{"@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/linkedin.com\/in\/thiagox86"]},{"@type":"Person","@id":"https:\/\/thiagorossi.com.br\/blog\/#\/schema\/person\/5f28286948ec2afdeb2e044a2196cd87","name":"Thiago Rossi","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bb28b4665f4162bab9fbef8db5a7f00597f79ab90ece9a67189bb6bce78d5786?s=96&d=retro&r=g","caption":"Thiago Rossi"},"description":"Com mais de 20 anos de jornada na tecnologia, minha trajet\u00f3ria evoluiu do ensino t\u00e9cnico \u00e0 arquitetura de sistemas complexos. Hoje, foco minha expertise no desenvolvimento de solu\u00e7\u00f5es de Intelig\u00eancia Artificial nativa e an\u00e1lise de dados p\u00fablicos, utilizando o ecossistema PHP para transformar dados brutos em transpar\u00eancia e efici\u00eancia. Como autor e desenvolvedor, acredito na democratiza\u00e7\u00e3o do conhecimento. Essa vis\u00e3o resultou em uma biblioteca de mais de 530 artigos gratuitos, cobrindo desde a base do WebDev e Infraestrutura at\u00e9 os bastidores da ind\u00fastria de Jogos e IA. No universo de Game Design, sou autor do livro \"GDD \u2013 O Guia Definitivo\" e documento ativamente meus processos atrav\u00e9s de DevLogs, unindo rigor t\u00e9cnico e criatividade em projetos desenvolvidos com GDevelop 5. Meu compromisso \u00e9 conectar engenharia de ponta com as reais oportunidades do mercado de tecnologia.","sameAs":["https:\/\/thiagorossi.com.br\/blog","https:\/\/instagram.com\/thiagorossix86","https:\/\/linkedin.com\/in\/thiagox86"],"url":"https:\/\/thiagorossi.com.br\/blog\/author\/thiagorossi\/"}]}},"_links":{"self":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/1555","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/comments?post=1555"}],"version-history":[{"count":2,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/1555\/revisions"}],"predecessor-version":[{"id":4997,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/posts\/1555\/revisions\/4997"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media\/1497"}],"wp:attachment":[{"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/media?parent=1555"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/categories?post=1555"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thiagorossi.com.br\/blog\/wp-json\/wp\/v2\/tags?post=1555"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}