2010-05-05 18 views
7

मैंने इस मुद्दे पर समान प्रश्न देखा है, लेकिन वे मूल ऐप्स से संबंधित हैं। मैं ब्राउज़र (सफारी) में चलने वाले आईफोन/आईपैड के लिए वेब ऐप्स बनाता हूं।क्या ब्राउज़र में आईफोन/आईपैड अभिविन्यास बदलने से रोकना संभव है?

मैं सोच रहा था कि ब्राउज़र में अभिविन्यास परिवर्तन को रोकने का कोई तरीका है, शायद कुछ मेटा टैग के माध्यम से। मुझे व्यूपोर्ट मेटा टैग के बारे में पता है जो आपको स्केल और ज़ूमिंग क्षमताओं को निर्दिष्ट करने की अनुमति देता है, इसलिए अनुमान लगाया जा सकता है कि अभिविन्यास के लिए कुछ ऐसा ही हो सकता है।

मुझे संदेह है कि यह संभव है, लेकिन मैंने सोचा कि मैं यहां देखने के लिए एक प्रश्न खुलता हूं।

+0

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

उत्तर

3

यह उन्मुखीकरण परिवर्तन को रोकने के लिए संभव हो सकता है प्रकट नहीं होता है, लेकिन आप ऊपर उल्लेख किया कोड के साथ यह पता लगा सकते हैं।

यदि आप अभिविन्यास परिवर्तन को रोकना चाहते हैं तो ऐसा लगता है कि आपको वेबकिट का उपयोग करके एक मूल ऐप बनाने की आवश्यकता होगी जो ईवेंट को रद्द करता है।

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 
} 

यह कहीं iPhone दस्तावेज़ में लिखा है, लेकिन मैं यह नहीं मिल रहा :)।

अद्यतन
Here from iPhone docs

+1

धन्यवाद मेडोपोल, लेकिन मुझे पहले से ही पता है कि यह पता लगाया जा सकता है। मेरा सवाल मौसम था इसे रोका जा सकता था। – BoomShaka

0

आप फ़ंक्शन के अंदर event.preventDefault() क्यों नहीं डाल सकते?

1

आप कर सकते थे वास्तव में मुश्किल हो और अभिविन्यास परिवर्तन प्रतिक्रिया करने के लिए करता है, तो कुछ भी नहीं है और कुछ काम करता है वेबसाइट के शरीर बारी बारी से ...

0

आप इसे नहीं रोका जा सकता है, लेकिन आप शरीर के उन्मुखीकरण को बदल सकते हैं, के अनुसार आईपैड का अभिविन्यास।

अभिविन्यास का पता लगाने और अपने शरीर के अभिविन्यास को बदलने के लिए मेडोपोल के उत्तर का उपयोग करें।

उदाहरण के लिए

:

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

कोड के इस बिट (, आईपैड 2 के कवर पीठ पर लटका दिया जाएगा लैंडस्केप मोड के लिए अच्छा) -90 डिग्री पर उन्मुखीकरण रखेंगे। इसे एक स्क्रिप्ट में एंड बॉडी टैग के नीचे रखें, या पिछली दो पंक्तियों को पहले से कॉल में लपेटें।

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

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

अच्छा विचार, हालांकि यह घुमाए जाने पर पूरी तरह से प्रस्तुत नहीं करता है। शायद कुछ चालबाजी पूरे शरीर को पुनर्स्थापित करने और चौड़ाई या कुछ सेट करने जैसी मदद कर सकती है। बेशक, यह मेरे सुझावों के समान ही है – BoomShaka