2010-05-05 12 views
7

Bu konuda benzer sorular gördüm, ancak bunlar yerel uygulamalar ile ilgilidir. Tarayıcıda (Safari) çalışan iPhone/iPad için web uygulamaları yapıyorum.iPhone/iPad yönlendirmesinin tarayıcıda değişmesini önlemek mümkün mü?

Tarayıcıda yönlendirme değişikliğini engellemenin bir yolu olup olmadığını merak ediyorum. Ölçek ve yakınlaştırma yeteneklerini belirlemenize olanak tanıyan viewport meta etiketini biliyorum, bu yüzden yönelim için benzer bir şey olabilir.

Mümkün olduğundan şüphe duyuyorum, ama sadece burada görmek için bir soru açacağımı düşündüm.

+0

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

cevap

3

Bu yön değişikliğini önlemek mümkün görünmüyor, ancak yukarıda belirtilen kodla algılayabilir.

Yönlendirmeyi değiştirmek istemiyorsanız, olayı bozan WebKit kullanarak yerel bir uygulama oluşturmanız gerektiği sanki görünür.

5

Evet, aslında yapabilirsiniz.

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 
} 

Bu iPhone doc yerde yazıldığı, ama ben bulamıyorum :).

GÜNCELLEME
Here from iPhone docs

+1

Teşekkürler medopal, ama zaten tespit edilebilir biliyorum. Sorum şu ki hava önlenebilirdi. – BoomShaka

0

neden bir event.preventDefault() işlevinin içine koyamadınız?

1

Yapabilirsin

0

bunu önleyemezsiniz ama göre, vücudun yönünü değiştirebilir ... gerçekten zor olabilir ve başka bir şey çalışırsa yön değişikliğini karşı koymak web sitesinin vücudu döndürmek ipad yönlendirmesi.

Yönlendirmeyi algılamak ve vücudunuzun yönünü değiştirmek için medopal'in Yanıtını kullanın. örneğin

:

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

Bu kod bit (iPad 2'nin kapak arkasına üzerinde asılı olacak manzara modu için güzel) -90 derecede yönelimini koruyacaktır. Bunu bir komut dosyasında son gövde etiketinin altına koyun veya son iki satırı bir hazır çağrıda sarın.

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

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

Güzel bir fikir, her ne kadar döndürüldüğünde mükemmel sonuç vermez. Belki de tüm vücudu yeniden konumlandırmak ve bir genişlik ya da bir şey ayarlamak gibi bazı hileler yardımcı olabilir. Tabii ki, bu meo'nun önerdiğiyle aynı – BoomShaka