Ir al contenido principal

Introducción a la API de Orientación de Pantalla en JavaScript (desarrollolibre.net)

Introducción a la API de Orientación de Pantalla en JavaScript
Cuando estamos utilizando un dispositivo móvil con Android y/o IOS (entre otros sistemas operativos móviles), nos daremos cuenta que al rotar el dispositivo la imagen proyectada en la pantalla "rota" o se adapta a la posición en la que se coloque el dispositivo.
La API de Orientación de Pantalla en JavaScript se encuentra accesible nativamente a través del objeto Screen el cual proporciona las primitivas necesarias para detectar la posición del dispositivo, bloquear y desbloquear posiciones específicas; es decir, emplear las mismas características que tienen las aplicaciones en los sistemas operativos móviles pero en una aplicación web móvil.
En esta entrada veremos un introducción a esta API de Orientación de Pantalla en JavaScript que puede resultar esencial al momento de crear una aplicación web para que sea correctamente visualizada en los dispositivomóviles.

Propiedades y métodos y eventos de la API Screen

Cómo has podido observar a lo largo de esta entrada, la API de Orientación de Pantalla extiende del objeto Screen y cuenta con un par de métodos que se complementan entre sí:

1.0 El método Screen.lockOrientation()

El método screen.lockOrientation() también accesible como window.screen.lockOrientation() permite bloquear la pantalla dada una orientación en específico:
window.screen.lockOrientation(orientation);
El parámetro orientation representa una orientación en específico la cual puede ser:
  • portrait-primary Esta primera orientación de la pantalla se encuentra en modo portrait y es la posición "normal" o "por defecto" del dispositivo en donde los botones de acción se encuentran en el fondo.
  • portrait-secondary Esta otra orientación de la pantalla al igual que la orientación anterior se encuentra en modo portrait y es la posición "normal" o "por defecto" del dispositivo pero girado 180 grados en donde los botones de acción se encuentran arriba.
  • landscape-primary Esta otra orientación de la pantalla se encuentra en modo landscape y es la posición "normal" o "por defecto" del dispositivo pero girado 90 grados en sentido horario en donde los botones de acción se encuentran a la derecha.
  • landscape-secondary Por último esta orientación de la pantalla se encuentra en modo landscape y es la posición "normal" o "por defecto" del dispositivo pero girado 270 grados en sentido horario o 90 grados en sentido antihorario en donde los botones de acción se encuentran a la izquierda.
Entonces se emplea el parámetro orientation en el método window.screen.lockOrientation(orientation) a través de un String o array de String para bloquear la pantalla según las orientaciones dadas:
window.screen.lockOrientation('portrait');
window.screen.lockOrientation('portrait-primary', 'landscape-primary');

2.0 El método Screen.unlockOrientation()

Si el primer método que tratamos bloqueaba la pantalla según la posición especificada, el método Screen.unlockOrientation() desbloquea o libera la pantalla según la orientación de pantalla especificado con el método anterior.

El evento onorientationchange

Por último, la API de Orientación de Pantalla también cuenta con un evento que indica cuando la pantalla ha sido rotada llamado onorientationchange, muy útil cuando ocurre una rotación del dispositivo y se deba actualizar la interfaz gráfica.

Caso práctico de la API de Orientación de Pantalla

El experimento presentado a continuación fué tomado de: Introducing the Screen Orientation API en donde también podrás encontrar información concerniente a la API de Orientación de Pantalla; a continuación procedemos a explicar algunas secciones de código del experimento:

Los prefijos

Al ser JavaScript nativo y no un framework como jQuery es necesario verificar el soporte a los navegadores a través de los prefijos, para esto se emplea la siguientes líneas de código:
            var prefix = 'orientation' in screen ? '' :
                    'mozOrientation' in screen ? 'moz' :
                    'webkitOrientation' in screen ? 'webkit' :
                    'msOrientation' in screen ? 'ms' :
                    null;
Puede darse el caso que simplemente el navegador no tenga soporte a la API de Orientación de Pantalla, en tal caso se mostrará un mensaje como "API no soportada".

Modo FullScreen

Para emplear la API de Orientación de Pantalla en JavaScript es necesario que la página ocupe la pantalla completa -full screen- por ello se activa y desactiva el modo de pantalla completa cada vez que se cambie la orientación del dispositivo seleccionada a través de las siguientes funciones respectivamente:
                function launchFullscreen(element) {
                    if (element.requestFullscreen) {
                        element.requestFullscreen();
                    }...
                }

                // desactiva el FullScreen
                function exitFullscreen() {
                    if (document.exitFullscreen) {
                        document.exitFullscreen();
                    }...
                }

Activar el método LockOrientation y unlockOrientation

Si la API se encuentra disponible, cada vez que se presione uno de los botones del ejemplo se des/bloqueará la pantalla según el modo seleccionado:
                // bloquea la pantalla y activa el FullScreen
                document.getElementById('lock-button').addEventListener('click', function(event) {
                    event.preventDefault();
                    launchFullscreen(document.documentElement);

                    setTimeout(function() {
                        screen[prefix + (prefix === '' ? 'l' : 'L') + 'ockOrientation'](select.value);
                    }, 1);
                });

                // desbloquea la pantalla y desactiva el FullScreen
                document.getElementById('unlock-button').addEventListener('click', function() {
                    exitFullscreen();
                    screen[prefix + (prefix === '' ? 'u' : 'U') + 'nlockOrientation']();
                });

El evento el método LockOrientation y unlockOrientation

Sencillamente se vincula una función al evento onorientationchange que recordemos se activa cada que que se rota el dispositivo:
                function orientationHandler() {
                    var orientationProperty = prefix + (prefix === '' ? 'o' : 'O') + 'rientation';
                    document.getElementById('orientation').textContent = screen[orientationProperty];
                }

                // activa el evento manejador
                screen.addEventListener(prefix + 'orientationchange', orientationHandler);

Comentarios

Entradas más populares de este blog

25 herramientas gratuitas para mejorar tus resultados en redes sociales

  Post autor invitado  Chema Espejo  (vilmanunez.com) Tener la herramienta justa que te eche una mano en tu trabajo en redes sociales no es fácil. Necesitas probar muchas hasta encontrar la que realmente te sirve. El problema aumenta aún más si tienes un presupuesto limitado. Entonces la búsqueda se hace más complicada. Por eso mismo me he propuesto seleccionarte las herramientas gratuitas que te van a echar una mano con la  gestión de tus perfiles de redes sociales . Cómo entenderás no he metido la primera que he visto. Más bien al contrario he seguido una serie de razones para seleccionar estas 25. Y para explicártelo mejor te he hecho este vídeo donde te explico porqué he cogido las que ves y no otras: porqué herramientas post vilma from  Vilma Núñez  on  Vimeo . Bueno creo que llega el momento de ponernos manos a la obra, aquí tienes todas las aplicaciones que las he dividido en 5 categorías según el tipo de uso para la ...

CÓMO INSTALAR NET FRAMEWORK 3.5 EN WINDOWS 10

PUBLICADO EL 23 de noviembre de 2016 POR VicHaunter Con Windows 10 nos encontramos una serie de paquetes y librerías nuevas que ya vienen preinstaladas en el sistema. El problema es ver cómo solucionar el error al instalar Net Framework 3.5 . Si bien vienen ya algunos paquetes más nuevos instalados de serie, los anteriores hay que instalarlos de forma manual. La verdad es que no tiene mucho sentido, puesto que hay una gran cantidad de programas y juegos que los requieren.  Si estás aquí seguramente te has encontrado con que al ejecutar algún juego o programa se abre una ventana de Net Framework 3.5 requerido. Errores al instalar Net Framework 3.5 en Windows 10 En esta misma ventana que te aparece le puedes dar directamente a instalar el paquete de forma automática. Pero ahora viene lo malo, y es que después de un rato de buscar, descargar y preparar la instalación, da errores varios.  NOTA: Si estás intentando solucionar el error 0X80071A90 de Net Framewor...

Canva – El software de diseño increíblemente simple (canva.com)

Con Canva el diseño es fácil para todos. Crea diseños para la web. Infografías Diseña infografías virales con Canva, el mejor programa de ... Presentaciones ¿Necesitas crear presentaciones en el trabajo o el colegio? Un ... Pósters Diseña tus pósters personalizados gratis con Canva. Con cientos ... Tipos de documentos Tarjetas Tarjetas virtuales Logotipos Flyers Pósteres Banners Hoja de vida Brochures Postales Infografías Membretes Portadas de libros Portadas de discos Collages de fotos Presentaciones Tarjetas de presentación Invitaciones digitales Tarjetas de regalo Portadas de revistas Encabezados de Twitter Portadas para Facebook Edición de fotos Desenfoque de foto Iconos gratuitos Insignias gratuitas Cuadrículas de diseño Efecto de viñeta Etiquetas Globos de texto Añade texturas Recorta tus imágenes Efectos fotográficos Marco de foto Enderezador de foto Imágenes transparentes Añadir texto a foto...