2012-06-12 17 views
11

मैं landscape only app बनाने की कोशिश कर रहा हूं, लेकिन मैं किसी भी घूर्णन को उत्पन्न करने में सक्षम नहीं हूं।डिवाइस घुमाए जाने पर मेरा कॉर्डोवा/फोनगैप आईओएस ऐप घूमता क्यों नहीं है?

PhoneGap.plist में autorotate सेटिंग का उपयोग किया गया था लेकिन फोनगैप 1.8.0 में मैं इसे पा सकता हूं। क्या यह अभी भी मौजूद है?

और क्या गलत हो सकता है कि मेरा आवेदन घूर्णन नहीं हो रहा है?

अद्यतन

मैं जानता हूँ कि केवल एक शब्द "परीक्षण" युक्त वेबपृष्ठ है। मैंने लक्ष्य डिवाइस को केवल आईपैड पर सेट किया है और सभी चार अभिविन्यास सक्षम किए हैं। क्या अभी भी गलत हो सकता है?

एक विशेष HTML दस्तावेज़ प्रकार की आवश्यकता है? क्या मुझे कुछ कॉर्डोवा-1.8.0.जेएस शामिल करने की ज़रूरत है? मुझे आईओएस (!?!) के लिए कोई नहीं मिला, इसलिए मैंने इसे एंड्रॉइड संस्करण के साथ परीक्षण किया। मैंने एपीआई को अब पढ़ा है, तो क्या मैं एंड्रॉइड .js फ़ाइल का उपयोग कर सकता हूं?

उत्तर

11

PiTheNumber के जवाब Cordova-उत्पन्न मूल कोड को संशोधित करने के साथ ठीक उन लोगों के लिए ठीक लग रहा है ।

this JIRA issue Cordova जारी रखते हुए, और के रूप में बड़े करीने से समझाया in this blog, आप भी plist मूल्यों का उपयोग करने या अपने जावास्क्रिप्ट कोड, जो मुझे बहुत अच्छी तरह से सूट में एक window.shouldRotateToOrientation समारोह परिभाषित कर सकते हैं। (यह एक "एक पृष्ठ एप्लिकेशन" अगर के रूप में सबसे Cordova क्षुधा हैं, इसलिए, अपने पूरे अनुप्रयोग के लिए)

window.shouldRotateToOrientation = function(degrees) { 
return true; 
} 

यह वर्तमान पृष्ठ के लिए डिवाइस अभिविन्यास सक्षम होगा। नोट आप डिग्री में रोटेशन वैल्यू के आधार पर इसे सक्षम करने का निर्णय भी ले सकते हैं, या फिर भी, क्यों नहीं, इसे केवल कुछ विचारों पर सक्षम करें, या उपयोगकर्ता को अपने HTML ऐप में चुनने दें ... अच्छा, है ना।

रिकॉर्ड के लिए, मुझे आईओएस 8 आईपैड हैंडल रोटेशन प्राप्त करने के लिए कुछ भी करने की ज़रूरत नहीं थी, जबकि आईओएस 6 और आईओएस 7 आईफोन दोनों वर्तमान कॉर्डोवा संस्करण (4.2.0, कॉर्डोवा आईओएस मंच संस्करण "आईओएस 3.7.0")। ऐसा इसलिए है क्योंकि कोई एक्सकोड पर "डिवाइस प्रकार" (टैबलेट/फोन) प्रति अलग रोटेशन सेटिंग्स प्रदान कर सकता है। ध्यान देने योग्य बात यह है कि यदि कॉर्डोवा पहले मौजूद है तो ऊपर जेएस फ़ंक्शन की जांच करेगा, और फिर यदि फ़ंक्शन मौजूद नहीं है या यह रोटेशन की अनुमति नहीं देता है, तो एक्सकोड रोटेशन सेटिंग का उपयोग किया जाएगा।

+0

आप एक जीवन बचतकर्ता हैं !!! – MrCujo

8

में Classes/MainViewController.m वापसी सच:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES for supported orientations 
    //return (interfaceOrientation == UIInterfaceOrientationPortrait); 
    return true; 
} 

के लिए आईओएस> = 6

- (BOOL)shouldAutorotate { 
    return YES; 
} 
-(NSUInteger)supportedInterfaceOrientations 
{ 
    return [[self.viewControllers lastObject] supportedInterfaceOrientations]; 
} 

Source

+0

की स्थापना यह मेरे लिए यह तय जरूरत नहीं थी। (मेरे लिए, डिफ़ॉल्ट फोनगैप प्रोजेक्ट के साथ, रोटेशन आईपैड पर काम कर रहा था लेकिन आईफोन नहीं।) – mpontillo

7

आप UISupportedInterfaceOrientations

प्लैट्रोम्स/आईओएस/{प्रोजेक्टनाम}/{ProjectName-info जोड़ सकते हैं।

Iphone के लिए::

<key>UISupportedInterfaceOrientations</key> 
    <array> 
     <string>UIInterfaceOrientationPortrait</string> 
     <string>UIInterfaceOrientationLandscapeLeft</string> 
     <string>UIInterfaceOrientationPortraitUpsideDown</string> 
     <string>UIInterfaceOrientationLandscapeRight</string> 
    </array> 

iPad के लिए:

<key>UISupportedInterfaceOrientations~ipad</key> 
    <array> 
     <string>UIInterfaceOrientationPortrait</string> 
     <string>UIInterfaceOrientationLandscapeLeft</string> 
     <string>UIInterfaceOrientationPortraitUpsideDown</string> 
     <string>UIInterfaceOrientationLandscapeRight</string> 
    </array> 
+0

इस आधुनिक अद्यतन ने मेरे मुद्दों को हल किया। – nokturnal

+0

मैंने दूसरों के सामने यह कोशिश की। पहली बार एक आकर्षण की तरह काम किया। कोई परेशानी नही। धन्यवाद! यह चुना गया जवाब होना चाहिए !!! रास्ता बहुत साफ !!! – moeiscool

15

मैं ऊपर जावास्क्रिप्ट समाधान की कोशिश की और कोई खुशी मिला विजुअल स्टूडियो 2015 मैं में plist

इस पंक्तियों को जोड़ने config.xml को

में बदलें

से Cordova 5 build command is deleting iOS device orientation settings

लिया मैं जावास्क्रिप्ट बस config

+0

दुर्भाग्य से यह अब कॉर्डोवा 5.4 में टूट गया है: https://issues.apache.org/jira/browse/CB-9975 – user206481

+0

@ user206481 मैं 5.4.1 का उपयोग कर रहा हूं और यह ठीक काम कर रहा है – RezaRahmati

+0

** नाम = "अभिविन्यास" ** काम नहीं किया, ** नाम = "अभिविन्यास" ** (दिमाग बिग ओ) सही लगता है – shershen

संबंधित मुद्दे

 संबंधित मुद्दे