;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Como vão funcionar as Comunidades do WhatsApp, pivôs de crise com Bolsonaro

Comunidades do WhatsApp permitirão reunir grupos semelhantes numa mesma página; função ainda está em fase de testes - Divulgação WhatsApp
Comunidades do WhatsApp permitirão reunir grupos semelhantes numa mesma página; função ainda está em fase de testes Imagem: Divulgação WhatsApp

Lucas Carvalho e Guilherme Tagiaroli

De Tilt, em São Paulo

27/04/2022 16h04Atualizada em 28/04/2022 15h22

Anunciado em abril, o recurso de Comunidades do WhatsApp virou pivô na crise entre o governo de Jair Bolsonaro (PL) e o TSE (Tribunal Superior Eleitoral). A ferramenta promete reunir "megagrupos" com milhares de membros, mas o lançamento foi adiado no Brasil e só acontecerá depois das eleições presidenciais de outubro.

Bolsonaro, que recentemente acusou o WhatsApp de "censura" por, segundo ele, "ter uma nova política para o mundo, mas uma especial respectiva para o Brasil", se reuniu com executivos da empresa hoje, que disseram que a decisão de adiar o lançamento da ferramenta foi puramente comercial.

Em nota a Tilt, o WhatsApp reconheceu que assinou "memorando de entendimento" com o TSE para combater a disseminação de notícias falsas no Brasil, e lembrou também que é signatário do Programa de Enfrentamento à Desinformação da Justiça Eleitoral desde 2019.

"No entanto, nenhum desses acordos com o WhatsApp faz referência à funcionalidade Comunidades ou ao seu momento de lançamento, pois esse tipo de decisão cabe à empresa", disse a companhia.

Como vão funcionar as Comunidades

O objetivo das comunidades é facilitar a organização de grupos com diferentes tópicos, segundo a empresa. Então, pense que a ideia é reunir grupos de assuntos relacionados.

Durante apresentação para jornalistas, o WhatsApp falou bastante sobre a comunidade de uma escola. Dentro dela, poderia haver grupos com pais de diferentes séries, um grupo para organizar caronas ou alguma comunidade para debater detalhes de uma excursão, por exemplo.

"Acreditamos que comunidades tornarão mais fácil para um diretor de escola reunir todos os pais e responsáveis para compartilhar avisos importantes e criar grupos para turmas específicas e atividades extracurriculares ou voluntárias", disse o anúncio da empresa.

O mesmo poderia ser aplicado a empresas —que costumam contar com grupos temáticos— ou um condomínio, onde poderia haver grupos sobre assembleia, uso de áreas comuns, entre outros.

Importante lembrar que uma vez dentro de uma comunidade, o número dos membros é preservado. Apenas o e pessoas que estão no mesmo grupo que você poderão visualizar os detalhes do contato.

O poderá:

  • enviar mensagens a todos os membros
  • inserir e remover membros e grupos
  • criar novos grupos
  • apagar mensagens ou arquivos de mídia considerados abusivos

O curioso é que o da comunidade poderá inserir grupos que ele não faz parte. Obviamente, neste caso, ele não conseguirá ler o conteúdo das conversas.

Da parte dos usuários, eles poderão:

  • decidir quem pode adicioná-los a uma comunidade (como já acontecem com os grupos)
  • denunciar abusos
  • bloquear contatos
  • sair da comunidade (empresa diz que trabalha numa forma de permitir sair da uma comunidade sem que ninguém seja notificado)

Apesar do recurso comunidades juntar grupos de diferentes tópicos, o WhatsApp diz que não quer ser necessariamente uma rede social, apenas uma interface para comunicação entre pessoas próximas.

"Enquanto outros apps oferecem conversas em grupo sem limites, desenvolvemos o WhatsApp para atender às necessidades de organizações e outros grupos em que as pessoas já se conhecem. Diferentemente das mídias sociais e outros serviços de mensagens, no WhatsApp não será possível procurar ou descobrir novas Comunidades", diz o comunicado da plataforma.

Mesmo assim, a plataforma diz que planeja aumentar gradualmente o número de participantes de um grupo (atualmente é 256). O WhatsApp ainda não detalhou quantas pessoas e grupos podem estar em uma comunidade — a companhia diz que fará testes para entender o melhor número possível.

Por que não no Brasil?

Como devem reunir diversos grupos num só lugar, as Comunidades do WhatsApp podem facilitar a troca e o encaminhamento de informações (verdadeiras ou não) sobre qualquer assunto, inclusive as eleições.

Em reunião no fim do ano ado, Will Catchart, presidente-executivo do WhatsApp, informou ao TSE que não faria mudanças significativas na plataforma durante o período eleitoral no Brasil. Não custa lembrar que o WhatsApp foi usado para espalhar fake news durante as eleições de 2018.

Dado que o segundo turno das eleições de 2022 está previsto para 30 de outubro, é possível que o recurso comunidades só chegue ao Brasil no fim do ano, entre novembro e dezembro.

"Vamos testar comunidades no WhatsApp nos próximos meses e, na sequência, abriremos o recurso para mais pessoas. No Brasil, não faremos mudanças significativas até o fim das eleições", explicou Jyoti Sood, líder de produto do WhatsApp, em conversa com jornalistas em abril.

Em nota encaminhada a Tilt nesta quarta, o WhatsApp deu mais detalhes da decisão. "É importante ressaltar que a decisão sobre a data de lançamento deste recurso no Brasil foi tomada exclusivamente pela empresa, tendo em vista a confiabilidade do funcionamento do recurso e sua estratégia de negócios de longo prazo. Essa decisão não foi tomada a pedido nem por acordo com o Tribunal Superior Eleitoral", disse a empresa.

"Estamos no início do desenvolvimento de Comunidades para o aprimoramento do recurso antes de ar à etapa de lançamento global, o que não acontecerá por vários meses. Continuaremos a avaliar o momento exato para o lançamento da funcionalidade no Brasil e comunicaremos a data quando estiver definida. Reafirmamos que isso só acontecerá após as eleições de outubro."