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

Casa coreana, 'nas alturas' e jogos: Airbnb lança categorias de hospedagens

As tradicionais Hanoks, aqui vistas na Coreia do Sul - Photo Seagull/Getty Images/iStockphoto
As tradicionais Hanoks, aqui vistas na Coreia do Sul
Imagem: Photo Seagull/Getty Images/iStockphoto

De Nossa

16/11/2022 13h29

O Airbnb, plataforma de aluguel de imóveis por temporada, lança nesta quarta (16) seis novas categorias de acomodações — algumas essenciais, outras 'diferentonas' — para viajantes buscarem em seu cardápio de hospedagens cadastradas.

Entre as novas opções está "Espaços Adaptados", que apresenta ao usuário casas adaptadas para o o de cadeira de rodas e/ou sem degraus no caminho até o interior da casa, quarto e banheiro, ou seja, ideais para quem enfrenta restrições de mobilidade.

Farão parte ainda do novo repertório do Airbnb o segmento 'Novidades', apenas com acomodações anunciadas nas dez últimas semanas; 'Nas Alturas', que traz imóveis a cerca de 3 mil metros acima do nível do mar e vistas impressionantes e 'Em Alta', com acomodações bem avaliadas e que receberam mais visualizações na última semana.

Entre os novos nichos para quem procura experiências diversas na hora do descanso, há também a categoria 'Diversão', com casas que possuem quadras de basquete, salas de jogos, campos de mini golfe, escorregadores e outros apetrechos de lazer e, finalmente, 'Hanoks', as acomodações tradicionais coreanas construídas com materiais naturais.

As tradicionais Hanoks, aqui vistas na Coreia do Sul - Getty Images - Getty Images
Em meio aos arranha-céus da Coreia do Sul, você pode encontrar hanoks, a tradicional casa coreana
Imagem: Getty Images

O Airbnb ainda detalhará mais o perfil da hospedagem na busca. Quem procura casas com vistas incríveis, por exemplo, encontrará informação sobre o tipo de vista na pesquisa. Casas próximas a parques nacionais serão marcadas com a distância até a entrada do parque.

Ele ainda deve aprender as preferências do momento do viajante. Quem andou de olho em acomodações em Napa, na Califórnia, uma área famosa pela produção de vinhos, ao reiniciar o aplicativo encontrará a categoria Vinhedos.

A vinícola (e Airbnb) Glen Ellen, na Califórnia: região de vinhedos de Sonoma fica a apenas 23 km do famoso Vale de Napa - Reprodução/Airbnb - Reprodução/Airbnb
A vinícola (e Airbnb) Glen Ellen, na Califórnia: região de vinhedos de Sonoma fica a apenas 23 km do famoso Vale de Napa
Imagem: Reprodução/Airbnb

Estas melhorias chegam junto com o novo Anúncio Fácil Airbnb, um recurso que deve facilitar a disponibilização de imóveis por novos anfitriões com a orientação gratuita de um Superhost (aqueles já muito bem avaliados na plataforma) e com a opção de receber apenas hóspedes experientes na sua primeira reserva, além de auxílio especializado do Airbnb para recebimento de pagamento ou uso do aplicativo.

Juntas, as novas funcionalidades têm o objetivo de facilitar o o do viajante a sua casa ideal e do anfitrião a uma renda extra.

Casa Tau, o Airbnb mais caro do mundo - Reprodução/Airbnb - Reprodução/Airbnb
Casa Tau, no México: o Airbnb mais caro do mundo apareceu no reality 'Brincando com Fogo' da Netflix
Imagem: Reprodução/Airbnb

Upgrade no seguro

É parte ainda do novo pacote de medidas do Airbnb a ampliação do AirCover — seguro oferecido pela plataforma — para anfitriões e a facilitação de envio do pedido de proteção contra danos, que poderá ter andamento acompanhado através da conta no Airbnb até o pagamento.

Os procedimentos adotados do segundo trimestre de 2023 pela plataforma incluirão verificação de identidade do hóspede para 90% das reservas em todos os destinos do mundo e proteção contra danos de até US$ 3 milhões, incluindo cobertura para carros, barcos, obras de arte e objetos de valor que estejam na acomodação.

Airbnb: casa na árvore em Atlanta - Divulgação - Divulgação
Airbnb: casa na árvore em Atlanta
Imagem: Divulgação

Nos EUA e no Canadá, ainda haverá uma nova análise de reservas para prevenir festas — que não são mais autorizadas nos imóveis alugados por temporada na plataforma, também a partir do segundo trimestre de 2023.

Ainda de acordo com o Airbnb, todas as outras medidas do pacote lançado nesta quarta (16) começarão a ser implementadas ao redor do mundo nesta semana.