IE/Safari)
Se voltássemos no tempo uns 20 anos, ou até menos, e falassemos pros devs daquela época o que os navegadores conseguem fazer hoje, definitivamente não acreditariam. Olhando em perspectiva o que os browsers fazem hoje com certeza garantiriam a entrada do Chrome, Firefox, Edge e outros em Hogwarts. Sabemos também quem ficaria de fora 👀 (aqueles que não devem ser mencionados Vamos dar um panorama de algumas Web Api's que fazem verdadeiras mágicas, especialmente em dispositivos móveis.
1. Ambient Light Events 💡
Quando o sensor de luz de um dispositivo detecta uma mudança no nível de luz, ele notifica o navegador dessa mudança. Imagine o que dá pra fazer com fotografias, ambientes escuros ou contrastes de acessibilidade Instantâneos!
Exemplo:
if ('ondevicelight' in window) {
window.addEventListener('devicelight', function(event) {
var body = document.querySelector('body');
if (event.value < 50) {
body.classList.add('darklight');
body.classList.remove('brightlight');
} else {
body.classList.add('brightlight');
body.classList.remove('darklight');
}
});
} else {
console.log('devicelight event not supported');
}
Compatibilidade - Firefox, Firefox Android
2. Web Bluetooth API 📲
Isso mesmo, você tem acesso ao bluetooth via browser 💙
Compatibilidade - Chrome, Edge, Opera, Chrome Android, Opera Android, Samsung Internet
3. Broadcast Channel API 🛰️
Compartilhando de informações entre janelas, tabs, iframes etc, quem já teve problema em precisar integrar esse tipo de comunicação, essa api é salvação.
Compatibilidade - Chrome, Edge, Firefox, Opera, WebView Android, Chrome Android, Opera Android, Samsung Internet
4. Contact Picker API 👥👥
Você tem acesso aos contatos do telefone via browser (: Usar informações como nome, email, telefone, endereço e ícone se estiverem disponíveis, a aplicabilidade disso é quase infinita.
Compatibilidade - Opera, WebView Android, Chrome Android, Opera Android, Samsung Internet
5. Web Video Text Tracks Format (WebVTT) 🔠
Outra grande amiga da acessibilidade, quer colocar legenda nos seus vídeos? usando a tag <video>
? É possível costumizar via css as legendas também. Vai fundo nessa lindeza =D
Exemplo:
track.vtt
WEBVTT
00:01.000 --> 00:04.000
- Never drink liquid nitrogen.
00:05.000 --> 00:09.000
- It will perforate your stomach.
- You could die.
<video controls autoplay src="video.webm">
<track default src="track.vtt">
</video>
Compatibilidade - Todos os browsers modernos
6. The WebSocket API 🔁
Essa é uma verdadeira mágica! Com essa API, você pode enviar mensagens a um servidor e receber respostas orientadas a eventos sem precisar consultar o servidor para obter uma resposta. Realtime meus amigos <3
Compatibilidade - Todos os browsers modernos
7. Screen Capture API 🖥️
A mágica do print! Super simples de usar!
Exemplo:
async function startCapture(displayMediaOptions) {
let captureStream = null;
try {
captureStream = await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
} catch(err) {
console.error("Error: " + err);
}
return captureStream;
}
Compatibilidade - Chrome, Edge, Firefox, Opera, Safari
8. Proximity Events 🤳
Sabe quando a tela desliga quando coloca o telefone no ouvido? Então, essa api te dá esse poder. Detecta quando o usuário está longe do dispositivo.
Bem intuitiva a implementação:
window.addEventListener('userproximity', function(event) {
if (event.near) {
// let's power off the screen
navigator.mozPower.screenEnabled = false;
} else {
// Otherwise, let's power on the screen
navigator.mozPower.screenEnabled = true;
}
});
Compatibilidade - Firefox, Firefox Android
9. Picture-in-Picture API
Comum no whatsapp, facebook, youtube. Essa API permite criar o vídeo flutuante em cima de outras janelas para que os usuários possam continuar a consumir mídia enquanto interagem com outros sites de conteúdo ou aplicativos em seus dispositivos.
Compatibilidade - Chrome, Edge, Opera, Safari, iOS Safari
E tem muito mais! São 77 API's com capacidades incríveis. Cada uma merece um artigo dedicado, vale a pena conferir e brincar com elas.
Fonte: MDN web docs
Comentários 💬