A aposta: em vez de empurrar a instalação com um banner, o Engrenou deixa um caminho fixo dentro de "Meu negócio" e gasta um único convite discreto, tarde, pra quem já usa o app de verdade - respeitar quem não quer sai mais barato do que insistir com quem talvez queira.
Duas peças, uma permanente e uma efêmera. A permanente mora no rodapé pessoal do hub "Meu negócio" (onde já vivem "Minha conta", "Ocultar valores", "Tutorial" e "Sair") - pôr o app na tela é assunto da pessoa e do aparelho dela, não do negócio, e por isso não entra nos blocos Vender/Cozinha/Pessoas/O negócio, que são gateados por papel. A efêmera é um aviso do dia no Hoje, no padrão que já existe, com a menor prioridade da fila.
Por que no rodapé pessoal e não num bloco: os blocos são gateados por papel (dono, atendente, financeiro) e a fonte é lib/negocioItens.js, que a barra lateral do computador também lê. Instalar não tem gate nenhum e não existe no computador. Uma linha nova ali economiza um item gateado na fonte única e ainda diz a verdade: é do aparelho da pessoa, igual "Minha conta".
Já instalado? A linha some. Dentro do app instalado ela não serve pra nada, e matchMedia('(display-mode: standalone)') resolve isso sem pedir nada a ninguém.
terça, 19 de agosto
Não é um quarto padrão de aviso. É o .hjv2-alerta.teal que o Hoje já tem, com X de 34px e o teto de 2 avisos visíveis. A diferença é a chave: em vez de eng_hj_dis_<id>_<key> guardando a data de hoje (volta amanhã), guarda eng_pwa_convite_<id> = {vezes, fechado_em}. Fechou, acabou.
Entra sempre por último. Se houver 2 avisos de operação, o convite fica atrás do "ver mais avisos" e nem conta como aparição. Pedido atrasado vale mais que instalar app.
Vira um ícone junto com os outros. Você abre com um toque, sem digitar endereço nem procurar a aba certa.
Não é da Play Store: é o mesmo Engrenou que você já usa. Precisa de internet do mesmo jeito, porque seus pedidos ficam salvos na nuvem, não no aparelho.
O botão só existe se o navegador deixou. O app guarda o beforeinstallprompt quando ele dispara e chama prompt() aqui. Se o evento nunca veio (navegador sem suporte, ou já instalado), o botão não é desenhado: a folha cai no passo a passo do menu do Chrome. Botão que não faz nada é pior que nenhum botão.
No iPhone quem faz isso é o Safari, em três toques. O Engrenou não consegue fazer por você.
Zero botão de ação. Nenhum "Instalar", nenhum "Adicionar" que a gente possa apertar - no iOS não existe API nenhuma. O único botão é Entendi, que fecha. Prometer um toque que não existe seria mentira, e o iPhone é metade do público.
O desenho do ícone importa mais que o texto. A dona não sabe o que é "Compartilhar", ela conhece o quadradinho com a seta. Por isso o ícone aparece duas vezes: dentro da frase e circulado na barra de baixo, no lugar onde ela vai olhar.
Ninguém no público-alvo quer "instalar um PWA". O que ela quer é não perder tempo procurando a aba certa às 6 da manhã com a mão suja de massa. A promessa é essa, e nada além dela.
Vira um ícone junto com os outros. Você abre com um toque, sem digitar endereço nem procurar a aba certa.
Por que essa: fala do resultado que ela vê (o ícone) e usa um verbo tranquilo. "Deixe" não pressiona: dá permissão. E não usa a palavra "instalar", que no Brasil puxa medo de ocupar memória e de vírus.
Você põe o ícone na tela inicial e abre com um toque. É o mesmo Engrenou, só que mais perto.
Por que talvez: ancora no aplicativo que ela usa o dia inteiro, então o benefício fica óbvio sem explicação. Perde na neutralidade: cita uma marca de terceiro dentro do nosso app, e quem vende por Instagram ou telefone pode não se ver ali.
Três motivos, nessa ordem: (1) o prêmio é um ícone na tela do celular, e no computador esse prêmio não existe; (2) o Chrome e o Edge já oferecem a instalação sozinhos, com o ícone na barra de endereço - repetir a oferta ao lado seria o app disputando com o navegador; (3) os itens do hub vêm de lib/negocioItens.js, que a barra lateral do computador também lê, então um item só-celular ali obrigaria um gate novo na fonte única. Ficando no rodapé pessoal do hub (.neg3-sessao, que já é display:none acima de 780px), o computador não muda uma linha.