;(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

WhatsApp vai suspender quem não aceitar troca de dados do app com Facebook

Arte/UOL
Imagem: Arte/UOL

Lucas Carvalho

De Tilt, em São Paulo

07/01/2021 13h16Atualizada em 07/01/2021 20h28

O WhatsApp começou a disparar uma notificação no Brasil e no mundo informando sobre seus novos termos de uso e política de privacidade, que am a vigorar em 8 de fevereiro de 2021. A novidade é que negar a integração entre os dados do aplicativo com o Facebook não será mais uma opção.

Com os novos termos, o compartilhamento de seus dados entre as plataformas WhatsApp e o Facebook ará a ser obrigatório, mesmo para quem não tem conta no Facebook. Quem recusar os novos termos terá a conta suspensa e só poderá voltar a usar o mensageiro quando mudar de ideia.

Atualmente, quem clicar na opção "Agora não" do aviso (ver imagem abaixo) pode continuar usando o app, mas só por enquanto. A mensagem é bem clara ao dizer que após 8 de fevereiro, "você deverá aceitar as atualizações [dos termos de uso] para continuar usando o WhatsApp".

Em nota enviada a Tilt, o WhatsApp diz que as mudanças servem apenas para dar mais transparência à forma como as empresas que usam o aplicativo gerenciam dados de seus clientes.

"Continua sendo uma decisão do usuário se ele gostaria ou não de se comunicar com uma empresa no WhatsApp. Esta atualização não muda as práticas de compartilhamento de dados entre o WhatsApp e o Facebook, e não impacta como as pessoas se comunicam de forma privada com seus amigos e familiares em qualquer lugar do mundo."

Novos termos de uso e política de privacidade do WhatsApp forçam compartilhamento de dados com Facebook - Reprodução/Tilt - Reprodução/Tilt
Novos termos de uso e política de privacidade do WhatsApp forçam compartilhamento de dados com Facebook
Imagem: Reprodução/Tilt

O que acontece com quem não concordar?

Assim como qualquer aplicativo que atualiza seus termos de uso e política de privacidade, o WhatsApp pergunta ao usuário se ele concorda. O que acontece se você não concordar após a data estipulada? Não poderá mais usar o app, simples assim.

A conta não é apagada, mas fica indisponível até o usuário aceitar a nova política de privacidade. De certa forma, o usuário não vai poder mais usar WhatsApp até mudar de ideia.

WhatsApp Business será afetado

A mudança afeta a maneira como empresas que usam o WhatsApp Business, versão corporativa do app, poderão gerenciar informações de clientes através do Facebook —o gigante azul é dono do app de mensagens desde 2014. O conglomerado já vem falando em unificar algumas partes dos seus aplicativos há algum tempo.

Algumas empresas podem compartilhar dados de clientes do WhatsApp com suas contas corporativas no Facebook. Entre as informações coletadas estão nomes, números de telefone, aparelho utilizado, dados de transações e pagamentos e outras informações anônimas.

O conteúdo das conversas, mensagens, fotos, vídeos e áudios não são compartilhados pois são criptografados de ponta a ponta —e isso continuará protegido e com o a cada pessoa com perfil no app.

Esse compartilhamento já existe há cerca de quatro anos, mas, até agora, usuários poderiam optar por fornecer esses dados às empresas que quisessem usá-los no Facebook ou não. Agora, se você falar com uma empresa que compartilha esses dados, eles poderão ser compartilhados automaticamente. O usuário não tem mais poder de decisão sobre isso.

Cada usuário será notificado dentro da própria conversa se a empresa com quem ele está falando optou por usar o Facebook para gerenciar e armazenar suas mensagens de WhatsApp.

A plataforma destaca que, se você não quiser que uma empresa compartilhe seus dados com o Facebook, basta não interagir com ela. Os usuários ainda podem bloquear facilmente uma empresa no WhatsApp se quiserem.

"Algumas empresas poderão escolher o Facebook, empresa controladora do WhatsApp, para armazenar e responder às mensagens de clientes de maneira segura. Você pode entrar em contato com essas empresas para saber mais sobre as práticas de privacidade adotadas", diz o WhatsApp em seu site oficial, atualizado com os novos termos e políticas.