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

iPhone 6S resiste: confira lista de celulares que darão adeus ao WhatsApp

Versão desatualizada do Galaxy S2 (2011) está na lista dos celulares que perderão o ao WhatsApp - Philip Jägenstedt/Wikimedia Commons
Versão desatualizada do Galaxy S2 (2011) está na lista dos celulares que perderão o ao WhatsApp Imagem: Philip Jägenstedt/Wikimedia Commons

Lucas Santana

Colaboração para Tilt, em Erfurt (Alemanha)

10/09/2021 18h27

A partir do dia 1 de novembro de 2021, o WhatsApp vai deixar de funcionar em celulares com versões mais antigas dos sistemas operacionais Android e iOS. Isso significa que é o fim da linha para o WhatsApp em iPhones com iOS 9 ou inferior e em aparelhos com Android 4.0.4 ou anteriores.

A notícia, porém, acabou gerando confusão (e memes) entre alguns donos de celulares da Apple nesta semana. Tudo por causa do iPhone 6S, ainda muito popular entre os consumidores brasileiros, que foi lançado originalmente com o iOS 9 instalado.

Na realidade, o iPhone 6S continuará com o WhatsApp funcionando. Mas isso só será possível se o sistema operacional dele estiver atualizado com uma versão menos antiga do iOS (da 10 em diante). Ou seja, se for o seu caso, faça isso antes de novembro. Basta ir até os ajustes do celular e atualizá-lo.

Não é nada incomum as pessoas demorarem um tempo para atualizar o sistema operacional do iPhone. Muitos ficam com receio de que o software cause lentidão ou impacte no consumo de bateria.

Ok, mas quais celulares vão deixar de ter e do WhatsApp?

Entre os celulares da Apple, o último aparelho que não recebeu atualizações para o iOS 10 foi o iPhone 4S, de 2011. Todos os demais aparelhos da maçã lançados após o 4S possuem a capacidade de atualizar seu sistema operacional para alguma versão mais recente e continuarão rodando o WhatsApp.

Sendo assim, a lista de iPhones que perderá e ao WhatsApp é a seguinte:

  • iPhone (2007)
  • iPhone 3G (2008)
  • iPhone 3GS (2009)
  • iPhone 4 (2010)
  • iPhone 4S (2011)

E no Android?

Já entre os celulares Android, a lista de modelos que não terão mais e ao WhatsApp é mais complexa, uma vez que cabe a cada fabricante determinar se o aparelho vai ou não receber atualizações do sistema operacional.

Checamos o banco de dados do site "GSMArena", que cataloga celulares homologados em todo o mundo, e encontramos ao menos 40 aparelhos lançados até 2011 em que o WhatsApp pode dar seus últimos suspiros até 1 de novembro.

Confira a lista com os modelos das marcas mais populares no Brasil a seguir:

  • Samsung: Galaxy S II, Galaxy Note, Galaxy Nexus, Google Nexus S, Galaxy R, Galaxy Nexus e Galaxy Reverb;
  • Motorola: Droid Razr XT912, Razr XT910 e Atrix 2.
  • LG: Nitro HD, Optimus, Optimus 2X e Optimus 4G;
  • Sony: Xperia Arc S, Xperia ray, Xperia mini, Xperia Arc, Xperia active, Xperia mini pro, Xperia neo V, Xperia Neo e Xperia pro.

Há também alguns modelos estrangeiros vendidos no país em pouca quantidade ou por importação. São eles:

  • Huawei: Ascend G740, Ascend Mate, Ascend D Quad XL, Ascend D1 Quad XL, Ascend P1 S e Ascend D2;
  • ZTE: ZTE Grand S Flex, ZTE V956, Grand X Quad V987 e ZTE Grand Memo;
  • Marcas diversas: HTC Evo 4G+, HTC Raider 4G, HTC Amaze 4G, HTC Vivid, HTD Evo Design 4G, HTC Rhyme, HTC Droid Incredible 2, HTC Rezound, HTC Sensation 4G, HTC Thunderbolt 4G, HTC Incredible S, HTC Sensation XL, HTC Sensation XE, HTC Desire S, HTC EVO 3D, HTC Sensation, Meizu MX e Honor U8860.
Se seu celular estiver em uma das listas acima, vale a pena checar se ele tem alguma atualização disponível para nas configurações. Se não estiver, mas for um celular fabricado até 2011 ou 2012, é bom conferir qual versão do Android ele está rodando atualmente.