;(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 o WhatsApp quer impedir você de continuar a encaminhar mensagens

WhatsApp vai dar a es de grupos o poder de barrar mensagens encaminhadas muitas vezes -
WhatsApp vai dar a es de grupos o poder de barrar mensagens encaminhadas muitas vezes

Helton Simões Gomes

Do UOL, em São Paulo

07/04/2019 11h31

Resumo da notícia

  • WhatsApp criou duas ferramentas que, a princípio, não tem efeito prático
  • Uma delas avisa quantas vezes uma mensagem foi encaminhada
  • A outra classifica que o conteúdo já foi encaminhado muitos vezes
  • Faz parte dos planos do aplicativo combinar essas funções
  • Próximo o é permitir que es de grupos impeçam mensagens muito reenviadas de serem publicadas

Você já deve ter recebido no WhatsApp uma mensagem encaminhada por algum amigo que, a princípio, parecia estranha. Mas, com o tempo, outros conhecidos mandaram a mesma coisa. E, com o volume de informação semelhante chegando a todo momento, você foi praticamente obrigado a prestar atenção naquilo. As pessoas que deram o alerta sobre o assunto não fizeram por mal, mas sentiram que deveriam compartilhar aquilo com você. O problema é outro.

A função de encaminhar mensagens ou a ser crucial para a estratégia de pessoas que criam e espalham boatos, notícias falsas e até golpes. Elas sabem que você vai querer compartilhar isso com alguém próximo. O WhatsApp já notou isso e até adotou algumas restrições, como fixar a quantidade de destinatários em cinco contatos. Só que agora o serviço de bate-papo mais popular do Brasil prepara uma série de medidas para não só limitar a capacidade que você tem de mandar uma determinada mensagem, mas proibir de vez que ela apareça em grupos.

Ferramenta de "Informações sobre encaminhamentos" no WhatsApp - WABetaInfo/Reprodução - WABetaInfo/Reprodução
Ferramenta de "Informações sobre encaminhamentos" no WhatsApp
Imagem: WABetaInfo/Reprodução

Antes de colocar seu plano em ação, o WhatsApp criou duas novas funções, que ainda não foram liberadas para todo mundo, mas já podem ser vistas em versões de testes do aplicativo. A primeira delas é a "Informação sobre encaminhamento".

Sabe aquela janela que indica se uma mensagem foi entregue a um destinatário e lida por ele? Pois bem, ela vai ganhar um terceiro elemento. ará a mostrar quantas vezes a mesma mensagem já foi encaminhada.

O segundo recurso é uma indicação que aparecerá na própria mensagem. Você já deve ter notado que conteúdos reenviados são sinalizados com um "encaminhado" acima deles. A novidade é que as mensagens reenviadas pelo menos cinco vezes serão classificadas como "encaminhadas com frequência".

Ferramenta de "Encaminhado com frequência" do WhatsApp - WABetaInfo/Reprodução - WABetaInfo/Reprodução
Ferramenta de "Encaminhado com frequência" do WhatsApp
Imagem: WABetaInfo/Reprodução

Essas duas novidades foram incluídas na versão beta do WhatsApp 2.19.86, para Android, e 2.19.40.23, para iOS. Só que até aí o único efeito prático delas é avisar que mensagens desse tipo são virais e, por isso, você deve ficar com a pulga atrás da orelha quanto conteúdo delas.

O WhatsApp está desenhando, no entanto, uma forma de usar essas informações para mudar o jeito com o aplicativo é usado. Os detalhes da estratégia estão na nova versão beta do serviço para Android, a 2.19.97.

O aplicativo que pertence ao Facebook incluiu nessa versão de teste um recurso que impedirá as mensagens encaminhadas com frequência de serem publicadas em grupos. A ferramenta ainda está sendo desenvolvida pelo WhatsApp, segundo o WABetaInfo, que descobriu como ela vai funcionar.

Os es de grupos ganharão um poder extra: além de estabelecer se os integrantes podem ou não conversar entre si, como já ocorre hoje, eles poderão definir se permitem ou não que mensagens reenviadas mais de cinco vezes possam ser postadas no grupo. É claro que ainda terão o direito de deixar tudo como está.

whatsapp_encaminhada - Reprodução/WABetaInfo - Reprodução/WABetaInfo
WhatsApp vai permitir que es de grupos proíbam a publicação de mensagens encaminhadas muitas vezes
Imagem: Reprodução/WABetaInfo

Se o optar pela restrição, não quer dizer que o conteúdo daquela mensagem não poderá nunca mais ser veiculado no grupo. Qualquer integrante pode muito bem copiar o que diz a mensagem e enviar como se fosse um texto escrito por ele. Isso, porém, tornaria o processo de disseminação mais lento, o que pode desencorajar o compartilhamento.

Seu contato vale R$ 0,24: como funcionam as "máquinas de spam" no WhatsApp que teriam sido usadas na eleição

Entenda

Não há previsão de quando o novo recurso chegará a todos os usuários do WhatsApp, mas seu desenvolvimento sinaliza que o aplicativo está interessado em conter a explosão de conteúdos enganosos que usam a plataforma para se espalhar de forma viral.

Nesta semana, o aplicativo já deu um o nesta direção: liberou uma forma dos usuários evitarem serem incluídos em grupos indiscriminadamente. Agora, é possível escolher que apenas contatos façam isso.