2010-05-05 8 views
7

He visto preguntas similares sobre este tema, pero están relacionadas con aplicaciones nativas. Construyo aplicaciones web para el iPhone/iPad que se ejecutan en el navegador (Safari).¿Es posible evitar que la orientación de iPhone/iPad cambie en el navegador?

Me preguntaba si hay una manera de prevenir el cambio de orientación en el navegador, tal vez a través de alguna etiqueta meta. Conozco la metaetiqueta de la ventana gráfica que le permite especificar capacidades de escala y zoom, por lo que quizás haya algo similar para la orientación.

dudo es posible, pero pensé que acababa de estallar una pregunta aquí para ver.

+0

http://stackoverflow.com/questions/1207008/how-do-i-lock-the-orientation-to-portrait-mode-in-a-iphone-web-application/21641809#21641809 – TMan

Respuesta

3

No parece ser posible evitar un cambio de orientación, pero se puede detectar con el código mencionado anteriormente.

Si desea evitar que el cambio de orientación parece como si usted necesita para construir una aplicación nativa utilizando WebKit, que anula el evento.

5

Sí, de hecho, usted puede.

Javascript:

/*window.orientation returns a value that indicates whether iPhone is in portrait mode, landscape mode*/ 
window.onorientationchange = function() { 
var orientation = window.orientation; 

switch(orientation) { 
    case 0: 
     //Portrait mode 
    case 90: 
     // Landscape left 
    case -90: 
     //Landscape right 
} 

Está escrito en algún lugar de iPhone doc, pero no puedo encontrarlo :).

ACTUALIZACIÓN
Here from iPhone docs

+1

Gracias medopal, pero ya sé que se puede detectar. Mi pregunta era si el clima podría prevenirse. – BoomShaka

0

por qué no puede simplemente poner un event.preventDefault() dentro de la función?

1

Usted podría ser realmente difícil y gira el cuerpo de la página web para contrarrestar el cambio de orientación si nada funciona ...

0

no puede evitarlo, pero se puede cambiar la orientación del cuerpo, de acuerdo con la orientación del ipad. Respuesta

Uso de medopal para detectar la orientación y cambiar la orientación de su cuerpo.

por ejemplo:

document.getElementsByTagName("body")[0].style.webkitTransform = "rotate(-90deg)"; 
0

Este bit de código se mantenga la orientación a -90 grados (agradable para el modo paisaje, la cubierta del iPad 2 se cierne sobre la parte posterior). Coloque esto debajo de la etiqueta del cuerpo final en un guión, o envuelva las dos últimas líneas en una llamada ya preparada.

function orient() { 
    var keepOrientationAt = -90; 
    var rotate = "rotate(" + (keepOrientationAt - window.orientation) + "deg)"; 
    document.getElementsByTagName("body")[0].style.webkitTransform = rotate; 
} 

window.onorientationchange = orient;  
orient(); 
+1

Buena idea, aunque no se renderiza perfectamente cuando se gira. Tal vez algún truco como el reposicionamiento de todo el cuerpo y el ajuste de un ancho o algo puede ayudar. Por supuesto, esto es lo mismo que meo sugiere – BoomShaka

Cuestiones relacionadas