2010-05-05 5 views
7

이 문제와 관련하여 비슷한 질문을했지만 기본 앱과 관련되어 있습니다. 브라우저 (Safari)에서 실행되는 iPhone/iPad 용 웹 앱을 제작합니다.브라우저에서 iPhone/iPad 방향이 변경되는 것을 방지 할 수 있습니까?

아마도 일부 메타 태그를 통해 브라우저에서 방향 변경을 방지하는 방법이 있는지 궁금합니다. 스케일 및 확대/축소 기능을 지정할 수있는 뷰포트 메타 태그를 알고 있으므로 방향에 대해 비슷한 것이 있다고 생각됩니다.

나는 그것이 가능한지는 의심 스럽지만, 나는 단지 여기에 질문을 던질 것이라고 생각했다.

+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

예, 실제로 가능합니다.

자바 스크립트 :

/*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 
} 

그것은 아이폰 문서 어딘가에 작성,하지만 나는 그것을 찾을 수 없습니다 :).

UPDATE
Here from iPhone docs

+1

고맙습니다 medopal,하지만 난 이미 그것을 감지 할 수 있습니다. 제 질문은 예방 될 수있는 날씨였습니다. – BoomShaka

0

왜 함수 안에 event.preventDefault()을 넣을 수 없습니까?

1

당신 수

0

당신이 그것을 막을 수 없다, 그러나 당신이에 따라, 몸의 방향을 변경할 수 있습니다 ... 정말 힘들 아무것도 다른 작동하지 않는 경우 방향 변화에 대처하기 위해 웹 사이트의 몸을 회전 ipad의 방향.

medopal의 답변을 사용하여 방향을 감지하고 신체의 방향을 변경하십시오. 예를 들어

:

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

코드의이 비트 (아이 패드 2의 커버가 다시 걸려됩니다 가로 모드에 대한 좋은) -90도에서 방향을 유지합니다. 이것을 스크립트의 end 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

관련 문제