Phonegap के साथ iOS 7 स्टेटस बार


91

IOS 7 में, Phonegap एप्लिकेशन स्टेटस बार के नीचे दिखाई देंगे। इससे उन बटनों / मेनू पर क्लिक करना मुश्किल हो सकता है जिन्हें स्क्रीन के शीर्ष पर रखा गया है।

क्या कोई है जो आईओएस 7 पर इस स्टेटस बार मुद्दे को फोनगैप एप्लिकेशन में ठीक करने का तरीका जानता है?

मैंने पूरे वेब पेज को सीएसएस के साथ ऑफसेट करने की कोशिश की है, लेकिन यह काम नहीं करता है। क्या पूरे UIWebView को ऑफ़सेट करना पसंद है या iOS6 में किए गए स्टेटस बार की तरह ही व्यवहार करना है?

धन्यवाद


वास्तव में "स्टेटस बार मुद्दा" क्या है? पुन: पेश करने के लिए कोई नमूना कोड?
रैप्टर

1
@ShivanRaptor iOS 7 के साथ, स्टेटस बार अब दृश्य का हिस्सा है, इसलिए यदि आपके पास पिछले iOS संस्करणों के साथ स्क्रीन के शीर्ष पर सामान था, तो यह अब स्थिति बार के नीचे है, स्वचालित रूप से इसके ठीक नीचे नहीं धकेल दिया जाता है, जो कुछ समस्याएं पैदा कर सकता है। मेरा सुझाव होगा कि आप अपनी सामग्री के लिए एक आवरण बनाएं, और 20px का मार्जिन-टॉप सेट करें।
एंड्रयू जीवंत

@AndrewLively - यह वास्तव में तब काम नहीं करता है जब पेज स्क्रॉल हो रहा है, क्या UIWebView को स्थानांतरित करने का कोई तरीका है?
17

जवाबों:


143

मुझे एक और सूत्र पर एक उत्तर मिला, लेकिन मैं किसी और चमत्कार के मामले में सवाल का जवाब दूंगा।

बस की जगह viewWillAppearमें MainViewController.mइस के साथ:

- (void)viewWillAppear:(BOOL)animated {
    // View defaults to full size.  If you want to customize the view's size, or its subviews (e.g. webView),
    // you can do so here.
    // Lower screen 20px on ios 7
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
        CGRect viewBounds = [self.webView bounds];
        viewBounds.origin.y = 20;
        viewBounds.size.height = viewBounds.size.height - 20;
        self.webView.frame = viewBounds;
    }
    [super viewWillAppear:animated];
}

9
क्या कोई अन्य इन-ऐप ब्राउज़र प्लगइन का उपयोग कर रहा है? अगर मैं इन ऐप ब्राउज़र को "प्रेजेंटस्टाइल = फुलस्क्रीन" के रूप में कॉन्फ़िगर करता हूं, तो ब्राउज़र बंद होने के बाद एक खाली तल मार्जिन दिखाई दे रहा है। ऐसा लगता है कि मार्जिन InAppBrowser टूलबार के समान ऊंचाई है। प्रस्तुति को "पेजशीट" पर सेट करना iPad पर इसे ठीक करता है, लेकिन iPhone हमेशा "फुलस्क्रीन" का उपयोग करता है। किसी भी काम?
पॉल

1
जवाब के लिए बहुत आभारी - हालांकि यही समस्या फोनगैप इनएप ब्राउज़र पर लागू होती है - यह स्टेटस बार को भी ओवरले कर देती है। उसके लिए कोई विचार?
माइकल

2
हां, हम कॉर्डोवा (2.3.0) के पुराने संस्करण का उपयोग करते हैं, और इसे ठीक करने के लिए आपको webViewBounds.origin.y = 20 सेट करना होगा; in createViewsWithOptions। इसके अलावा, यह देखें कि क्या पृष्ठभूमि का रंग सेट किया जा रहा है और उसी के साथ खेलते हैं। IOS7 और इसके बाद के संस्करण के लिए एक संस्करण की जाँच करें, जैसे कि लुडविग क्रिस्टोफ़रसन के इस उत्कृष्ट उत्तर में।
15

3
इसके अलावा - यदि आप InAppBrowser का उपयोग कर रहे हैं, तो प्रत्येक बार आपके वापस लौटने पर दृश्य पुन: प्रारंभ हो जाएगा। इसलिए यह एक झंडा जोड़ना समझदारी होगी जो कहता है कि यह पहले से ही आपके MainViewController.m पर चलाया जा चुका है।
15

14
क्योंकि यह कोड viewWillAppear में चलता है, आप इस समाधान के साथ मुद्दों पर चलेंगे यदि आपका PhoneGap / कॉर्डोवा ऐप अन्य मूल विचारों (जैसे कैमरा कैप्चर डायलॉग) को प्रदर्शित करता है और इस दृश्य पर वापस लौटता है। मेरे लिए फिक्स '[self.webView सीमा]' के बजाय 'viewBounds' को '[self.view सीमा]' को इनिशियलाइज़ करना था।
क्रिस कार्चर

37

लुडविग क्रिस्टोफ़रसन के आकार परिवर्तन के अलावा, मैं स्थिति बार का रंग बदलने की सलाह देता हूं:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
        CGRect viewBounds = [self.webView bounds];
        viewBounds.origin.y = 20;
        viewBounds.size.height = viewBounds.size.height - 20;
        self.webView.frame = viewBounds;
    }
    self.view.backgroundColor = [UIColor blackColor];
}
-(UIStatusBarStyle)preferredStatusBarStyle{
    return UIStatusBarStyleLightContent;
}

1
वर्किंग ग्रेट :) बहुत बहुत धन्यवाद :)
rkaartikeyan

बिल्कुल सही - यह मेरे लिए बेहतर समाधान था।
डेविड डुडेलिन

यह फिक्स Xcode बिल्ड के बाद स्थानीय स्तर पर काम करता है, लेकिन फोनगैप बिल्ड करने के बाद नहीं। कोई विचार? मेरे पास
फोनगैप

यह समाधान काम करता है, लेकिन मुझे फुलस्क्रीन वीडियो के साथ एक समस्या थी और मुझे यह एक और मिला और इसने मेरी समस्या को ठीक कर दिया zsprawl.com/iOS/2013/10/fixing-the-phonegap-status-bar-in-ios7
magorich

1
@KirankumarSripati वास्तव में मेरा आखिरी समाधान यह था कि मुझे उम्मीद है कि Niwnteger स्क्रीन के लिए काम करता है = = 0; // ग्लोबल अगर ([[[UIDevice currentDevice] systemVersion] floatValue]> = 7) {CGRect viewBounds = [self.webView सीमा]; viewBounds.origin.y = 20; if (screenSize == 0) {viewBounds.size.height = viewBounds.size.height - 20; स्क्रीनसाइज़ = viewBounds.size.height; } self.webView.frame = viewBounds; } मैंने ऐसा इसलिए किया क्योंकि मेरा ऐप हर बार आकार बदल रहा था, मैंने फुलस्क्रीन में प्रवेश किया
मैगोरिक

22

कृपया, उस प्लगइन को फोनगैप के लिए स्थापित करें : https://build.phonegap.com/plugins/505

और वेब की ओवरले को नियंत्रित करने के लिए नीचे की तरह सही सेटिंग का उपयोग करें:

<preference name="StatusBarOverlaysWebView" value="false" />

मेरे लिए, फोनगैप 3.3.0 के साथ यह काम करता है।

अधिक जानकारी, Github प्रोजेक्ट पेज पर: https://github.com/phonegap-build/StatusBarPlugin


इस उत्तर के लिए बहुत बहुत धन्यवाद !! मैं इस प्लगइन के साथ कोशिश कर रहा था: build.phonegap.com/plugins/715 , समस्या यह है कि नाम समान हैं। लेकिन मेरे लिए कभी काम नहीं करता। बहुत बहुत धन्यवाद!!
जबल मर्कज़

ईमानदार होने के लिए, मुझे याद नहीं कि मैंने आपके द्वारा बताए गए इस प्रयास से पहले प्रयास किया था।
16

20

स्टेटबार छिपाने के लिए, MainViewController.mफंक्शन के तहत फाइल में निम्न कोड जोड़ें-(void)viewDidUnload

- (BOOL)prefersStatusBarHidden
{
    return YES;
}

यह काम करता है। यह आपके ऐप को पूर्ण स्क्रीन बनाने वाली स्थिति पट्टी को छिपा देगा। मैंने केवल सिम्युलेटर पर इसका परीक्षण किया था, लेकिन बाद में जब मैं अपने iPhones और iPads पर एक बिल्ड चलाऊंगा तब रिपोर्ट करूंगा।
रॉब इवांस

आईओएस पर आईओएस 2 पर मेरे लिए काम करता है
मार्क विलियम्स

यह iPad Air iOS 7.1.2 पर ठीक काम करता है और इसके लिए किसी बदलाव या प्लगइन्स की जरूरत नहीं है। शानदार जवाब, धन्यवाद!
स्क्रिप्टलैब्स

/: यह पूरी तरह से सब कुछ है कि एप्पल 'जीवंत पूर्ण स्क्रीन मोड "ह्यूमन इंटरफ़ेस के दिशा निर्देशों में के बारे में कहते हैं ... सिर्फ इसलिए कि आप आईओएस के शीर्ष पर एक आवरण का उपयोग कर रहे मतलब यह नहीं है कि आप डिजाइन पैटर्न अनदेखा कर सकते हैं ... पर ध्यान नहीं देता
यिशै .co.tt

15

उत्तर https://stackoverflow.com/a/19249775/1502287 ने मेरे लिए काम किया, लेकिन मुझे इसे कैमरा प्लगइन (और संभवतः अन्य) के साथ काम करने के लिए इसे थोड़ा बदलना पड़ा और एक व्यूपोर्ट मेटा टैग के साथ "ऊँचाई = डिवाइस- ऊँचाई "(ऊँचाई वाले भाग को सेट नहीं करने से कीबोर्ड मेरे मामले में दृश्य पर प्रकट होगा, रास्ते में कुछ इनपुट छिपाता है)।

हर बार जब आप कैमरा दृश्य खोलेंगे और अपने ऐप पर वापस जाएंगे, तो viewWillAppear पद्धति को कॉल किया जाएगा, और आपका दृश्य 20px तक सिकुड़ जाएगा।

इसके अलावा, व्यूपोर्ट के लिए डिवाइस-ऊंचाई में 20 अतिरिक्त px शामिल होंगे, जो स्क्रॉल करने योग्य सामग्री प्रदान करते हैं और वेब से 20 गुना अधिक है।

यहाँ कैमरा समस्या के लिए पूर्ण समाधान है:

MainViewController.h में:

@interface MainViewController : CDVViewController
@property (atomic) BOOL viewSizeChanged;
@end

MainViewController.m में:

@implementation MainViewController

@synthesize viewSizeChanged;

[...]

- (id)init
{
    self = [super init];
    if (self) {
        // On init, size has not yet been changed
        self.viewSizeChanged = NO;
        // Uncomment to override the CDVCommandDelegateImpl used
        // _commandDelegate = [[MainCommandDelegate alloc] initWithViewController:self];
        // Uncomment to override the CDVCommandQueue used
        // _commandQueue = [[MainCommandQueue alloc] initWithViewController:self];
    }
    return self;
}

[...]

- (void)viewWillAppear:(BOOL)animated
{
    // View defaults to full size.  If you want to customize the view's size, or its subviews (e.g. webView),
    // you can do so here.
    // Lower screen 20px on ios 7 if not already done
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7 && !self.viewSizeChanged) {
        CGRect viewBounds = [self.webView bounds];
        viewBounds.origin.y = 20;
        viewBounds.size.height = viewBounds.size.height - 20;
        self.webView.frame = viewBounds;
        self.viewSizeChanged = YES;
    }
    [super viewWillAppear:animated];
}

अब व्यूपोर्ट प्रॉब्लम के लिए, अपने डेविसराय इवेंट श्रोता में, इसे जोड़ें (jQuery का उपयोग करके):

if (window.device && parseFloat(window.device.version) >= 7) {
  $(window).on('orientationchange', function () {
      var orientation = parseInt(window.orientation, 10);
      // We now the width of the device is 320px for all iphones
      // Default height for landscape (remove the 20px statusbar)
      var height = 300;
      // Default width for portrait
      var width = 320;
      if (orientation !== -90 && orientation !== 90 ) {
        // Portrait height is that of the document minus the 20px of
        // the statusbar
        height = document.documentElement.clientHeight - 20;
      } else {
        // This one I found experimenting. It seems the clientHeight
        // property is wrongly set (or I misunderstood how it was
        // supposed to work).
        // Dunno if it's specific to my setup.
        width = document.documentElement.clientHeight + 20;
      }
      document.querySelector('meta[name=viewport]')
        .setAttribute('content',
          'width=' + width + ',' +
          'height=' + height + ',' +
          'initial-scale=1.0,maximum-scale=1.0,user-scalable=no');
    })
    .trigger('orientationchange');
}

यहाँ अन्य संस्करणों के लिए उपयोग किया जाने वाला व्यूपोर्ट है:

<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1.0,maximum-scale=1.0" />

और सभी अब अच्छी तरह से काम करता है।


Jquery @dieppe के बिना कोई भी विधि
अर्जुन टी राज

बस इस कोड को जोड़ें - (शून्य) imagePickerController: (UIImagePickerController *) पिकर ने किया। NSLog (@ "CLOSED CAMERA"); [[UIApplication sharedApplication] setStatusBarHidden: YES withAnimation: UIStatusBarAnimationNone];
अर्जुन टी राज

यार, मैं आपको धन्यवाद कहने के लिए शब्द नहीं जानता! मैं कैमरे के साथ 20px सिकुड़न की समस्या से जूझ रहा हूँ, और अब तक इसका हल नहीं खोज सका ...
tuks

6

(app name)-Info.plistXCode में एप्लिकेशन की फ़ाइल में जाने और कुंजियों को जोड़ने का प्रयास करें

view controller-based status bar appearance: NO
status bar is initially hidden : YES

यह मेरे लिए समस्या के बिना काम करता है।


मेरे लिए, यह एक स्थानीय बिल्ड के साथ सिम्युलेटर में काम करता है, लेकिन iPad में रिमोट बिल्ड के साथ नहीं। सिम्युलेटर और iPad पर बिल्ड और iOS7 के लिए PG 3.1 का उपयोग करना।
प्रति क्वेस्ट एरॉनसन

@PerQuestedAronsson आप इसे आईपैड पर स्थानीय स्तर पर बनाने की कोशिश कर सकते हैं। मैं बिना समस्या के फोनगैप 3.1 के साथ एक iPad iOS7 के साथ काम कर रहा हूं।
dk123

6

कॉर्डोवा 3.1+ के लिए, एक प्लगइन है जो iOS 7+ के लिए स्टेटस बार के व्यवहार में परिवर्तन से संबंधित है।

यह यहाँ अच्छी तरह से प्रलेखित है , जिसमें यह भी शामिल है कि स्टेटस बार को उसके पूर्व iOS7 स्थिति में कैसे वापस लाया जा सकता है।

प्लगइन स्थापित करने के लिए, चलाएं:

cordova plugin add org.apache.cordova.statusbar

फिर इसे config.xml में जोड़ें

<preference name="StatusBarOverlaysWebView" value="false" />
<preference name="StatusBarStyle" value="default" />

आप StatusBar रंग भी सेट कर सकते हैं, जो काले रंग में डिफॉल्ट करता है: <वरीयता नाम = "StatusBarBackgroundColor" मान = "# 000000" /> देखें: plugins.cordova.io/#/package/org.apache.ordova.statusbar
ezzadeen

2
कॉर्डोवा 5+ के लिए, प्लगइन का नाम बदल दिया गया है: कॉर्डोवा प्लगइन कॉर्डोवा-प्लगइन-स्टेटसबार जोड़ें
raider33

5

मैं अपनी समस्या को हल करके org.apache.cordova.statusbarऔर अपने शीर्ष में जोड़कर हल करता हूं config.xml:

<preference name="StatusBarOverlaysWebView" value="false" /> 
<preference name="StatusBarBackgroundColor" value="#000000" />
<preference name="StatusBarStyle" value="lightcontent" />

ये कॉन्फ़िगरेशन केवल iOS 7+ के लिए काम करता है

संदर्भ: http://devgirl.org/2014/07/31/phonegap-developers-guid/



1

अगर IOS7 का पता चला है, तो शरीर में एक वर्ग जोड़ने के लिए मैं निम्नलिखित कोड के टुकड़े का उपयोग करता हूं। मैं तब उस श्रेणी को 20pxअपने कंटेनर के शीर्ष पर एक मार्जिन जोड़ने के लिए शैली देता हूं। सुनिश्चित करें कि आपके पास "डिवाइस" प्लगइन स्थापित है और यह कोड "डिवेडरेडी" इवेंट के अंदर है।

चारों ओर पढ़ने से, मैंने सुना है कि Phonegap (3.1 मेरा मानना ​​है) के लिए अगला अपडेट iOS7 की स्थिति पट्टी में परिवर्तन का बेहतर समर्थन करेगा। तो यह सिर्फ एक अल्पकालिक फिक्स के रूप में आवश्यक हो सकता है।

if(window.device && parseFloat(window.device.version) >= 7){
  document.body.classList.add('fix-status-bar');
}

1

लुडविग के जवाब ने मेरे लिए काम किया।

जो कोई भी अपने उत्तर का उपयोग करता है और अब सफेद मार्जिन का रंग बदलना चाहता है (वह तुच्छ प्रतीत हो सकता है, लेकिन मुझे बहुत बुरा लगा), इसे देखें:

IOS7 स्थिति बार ओवरले समस्या को ठीक करने के लिए UIWebView को नीचे खिसकाने के बाद मैं UIWebView पृष्ठभूमि रंग कैसे बदल सकता हूं?


1

एक और तरीका पिछड़े संगत हैiOS 7उस full screenलुक को देने के लिए (शीर्ष पर अतिरिक्त 20px मार्जिन के साथ) HTML बनाएं और उस अतिरिक्त मार्जिन को काट दें iOS < 7.0। निम्नलिखित में से कुछ की तरह MainViewController.m:

- (void)viewDidLoad
{
  [super viewDidLoad];

  if ([[[UIDevice currentDevice] systemVersion] floatValue] < 7.0) {
    CGRect viewBounds = [self.webView bounds];
    viewBounds.origin.y = -20;
    viewBounds.size.height = viewBounds.size.height + 20;
    self.webView.frame = viewBounds;
  }
}

यह समाधान iOS 7.0ऊपर और ऊपर एक काली पट्टी नहीं छोड़ेगा , जो एक आधुनिक आईओएस उपयोगकर्ता को अजीब और पुराना लगेगा ।


0

निम्नलिखित कोड को AppDelegate.m के अंदर didFinishLaunchingWithOptions Event में लिखें (इसके ठीक पहले कोड " रिटर्न YES; "):

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) 
{
    [application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}

मुझे आपकी प्रतिक्रिया की प्रतीक्षा रहेगी! :)


यह कोड स्टेटस बार को छिपाने और समस्या को हल करने के लिए बहुत अच्छा लगता है, मैंने कल भी थोड़ा बहुत देखा और कोड की एक शांति पाई जो अनिवार्य रूप से UIWebView का आकार बदलकर नीचे ले गई और मैंने इसे एक उत्तर के रूप में भी जोड़ा :)
लुडिग

एक दम बढ़िया। मेरा कोड केवल इसे करने के लिए एक सरल और आसान तरीका का उपयोग कर रहा है! हम सभी अलग-अलग तरीकों से एक ही काम कर रहे हैं :)
एहसान

0

अगर हम छवि गैलरी के लिए कैमरा प्लगइन का उपयोग करते हैं, तो स्थिति बार वापस आ जाएगी ताकि उस समस्या को ठीक किया जा सके

 [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];

सेवा

- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info {...}

प्लगइन्स सूची में CVDCamera.m के अंदर फ़ंक्शन


0

अंदर निम्नलिखित कोड लिखें AppDelegate.m में didFinishLaunchingWithOptions शुरू करने पर घटना।

CGRect screenBounds = [[UIScreen mainScreen] bounds]; // Fixing status bar ------------------------------- NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."]; if ([[vComp objectAtIndex:0] intValue] >= 7) { // iOS 7 or above CGRect newWebViewBounds = CGRectMake( 0, 20, screenBounds.size.width, screenBounds.size.height-20 ); screenBounds = newWebViewBounds; } // ------------------------------- Fixing status bar End

और ऊपर iOS 7 और इसके बाद के संस्करण के लिए ठीक करें।


0

चित्र में स्थिति पट्टी को दृश्यमान रखने के लिए, लेकिन इसे परिदृश्य में छिपाएं (अर्थात फ़ुलस्क्रीन), निम्न प्रयास करें:

इन MainViewController.h:

@interface MainViewController : CDVViewController
@property (atomic) NSInteger landscapeOriginalSize;
@property (atomic) NSInteger portraitOriginalSize;
@end

इन MainViewController.m:

@implementation MainViewController

@synthesize landscapeOriginalSize;
@synthesize portraitOriginalSize;

...

- (void)viewWillAppear:(BOOL)animated
{
    // View defaults to full size.  If you want to customize the view's size, or its subviews (e.g. webView),
    // you can do so here.

    [super viewWillAppear:animated];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:UIDeviceOrientationDidChangeNotification object:nil];
}

- (void)orientationChanged:(NSNotification *)notification {
    [self adjustViewsForOrientation:[[UIApplication sharedApplication] statusBarOrientation]];
}

- (void)viewDidDisappear:(BOOL)animated {
    [[NSNotificationCenter defaultCenter]removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil];
}

- (void) adjustViewsForOrientation:(UIInterfaceOrientation) orientation {
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
        CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
        CGRect frame = self.webView.frame;

        switch (orientation)
        {
            case UIInterfaceOrientationPortrait:
            case UIInterfaceOrientationPortraitUpsideDown:
            {
                if (self.portraitOriginalSize == 0) {
                    self.portraitOriginalSize = frame.size.height;
                    self.landscapeOriginalSize = frame.size.width;
                }
                frame.origin.y = statusBarFrame.size.height;
                frame.size.height = self.portraitOriginalSize - statusBarFrame.size.height;
            }
                break;

            case UIInterfaceOrientationLandscapeLeft:
            case UIInterfaceOrientationLandscapeRight:
            {
                if (self.landscapeOriginalSize == 0) {
                    self.landscapeOriginalSize = frame.size.height;
                    self.portraitOriginalSize = frame.size.width;
                }
                frame.origin.y = 0;
                frame.size.height = self.landscapeOriginalSize;
            }
                break;
            case UIInterfaceOrientationUnknown:
                break;
        }

        self.webView.frame = frame;
    }
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Do any additional setup after loading the view from its nib.

    // Change this color value to change the status bar color:
    self.view.backgroundColor = [UIColor colorWithRed:0/255.0f green:161/255.0f blue:215/255.0f alpha:1.0f];
}

यह एक ऐसा संयोजन है जो मैंने इसमें पाया है और लिंक किए गए StackOverflow चर्चा, कॉर्डोवा StatusBar प्लगइन से कुछ कोड (इसलिए 20px मूल्य को हार्डकोड नहीं करने के लिए), और मेरे हिस्से पर कुछ झुकाव (मैं एक iOS देव नहीं हूं) मैं इस समाधान के लिए अपना रास्ता fumbled)।


0

सबसे पहले, आप प्रोजेक्ट में डिवाइस प्लगइन जोड़ें। Plugin Id है: org.apache.cordova.device और repository है: https://github.com/apache/cordova-plugin-device.git

इसके बाद इस फ़ंक्शन का उपयोग करें और इसे हर पेज या स्क्रीन पर कॉल करें: -

function mytopmargin() {
    console.log("PLATform>>>" + device.platform);
    if (device.platform === 'iOS') {
        $("div[data-role='header']").css("padding-top", "21px");
        $("div[data-role='main']").css("padding-top", "21px");
    } else {
        console.log("android");
    }
}

0

स्टेटस बार बैकग्राउंड - 2017 को नियंत्रित करने का सबसे अच्छा तरीका

चल रही निराशा के बाद, इंटरनेट पर बहुत सारी खोज, ये कदम आपको उठाने की आवश्यकता है:

  1. सुनिश्चित करें कि आप स्टेटस बार प्लगिन का उपयोग करते हैं
  2. इस सेटिंग को अपने config.xml में जोड़ें:

<वरीयता नाम = "StatusBarOverlaysWebView" मान = "गलत" />

  1. OnDeviceReady पर निम्न कोड का उपयोग करें

        StatusBar.show();
        StatusBar.overlaysWebView(false);
        StatusBar.backgroundColorByHexString('#209dc2');

यह मेरे लिए iOS और Android में काम करता है।

सौभाग्य!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.