2010-05-05 2 views
7

Я видел похожие вопросы по этой проблеме, но они связаны с родными приложениями. Я создаю веб-приложения для iPhone/iPad, которые запускаются в браузере (Safari).Можно ли изменить ориентацию iPhone/iPad в браузере?

Мне было интересно, есть ли способ предотвратить изменение ориентации в браузере, возможно, через некоторый метатег. Я знаю метатег viewport, который позволяет вам указывать возможности масштабирования и масштабирования, поэтому, возможно, есть что-то подобное для ориентации.

Я сомневаюсь, что это возможно, но я думал, что просто напишу здесь вопрос.

+0

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

ответ

3

Это не представляется возможным предотвратить изменение ориентации, но вы можете обнаружить его с кодом, упомянутым выше.

Если вы хотите предотвратить изменение ориентации, кажется, вам нужно создать собственное приложение с использованием WebKit, которое отменит событие.

5

Да, на самом деле вы можете.

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 
} 

Это написано где-то в iPhone док, но я не могу найти его :).

UPDATE
Here from iPhone docs

+1

Спасибо medopal, но я уже знаю, что это можно обнаружить. Мой вопрос был о погоде, которую можно было бы предотвратить. – BoomShaka

0

Почему вы не можете просто поставить event.preventDefault() внутри функции?

1

Вы могли бы быть очень сложно, и повернуть тело сайта, чтобы противодействовать изменению ориентации, если ничего не работает ...

0

вы не можете предотвратить это, но вы можете изменить ориентацию тела, в соответствии с ориентация ipad.

Используйте ответ medopal, чтобы определить ориентацию и изменить ориентацию вашего тела.

, например:

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

Эти бит код будет поддерживать ориентацию на -90 градусов (хорошо для ландшафтного режима, IPad 2 в крышке будет висеть на спинке). Поместите это под тегом body body в сценарий или оберните последние две строки при вызове onready.

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

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

Хорошая идея, хотя при повороте она отлично не отображается. Возможно, некоторые хитрости, такие как перепозиционирование всего тела и установка ширины или что-то может помочь. Конечно, это то же самое, что и meo. – BoomShaka

Смежные вопросы