ফোনগ্যাপ সহ আইওএস 7 স্ট্যাটাস বার


91

আইওএস 7-এ, ফোনগ্যাপ অ্যাপ্লিকেশনগুলি স্ট্যাটাস বারের নীচে উপস্থিত হবে। এটি স্ক্রিনের শীর্ষে রাখা বোতাম / মেনুগুলিতে ক্লিক করা কঠিন করে তুলতে পারে।

ফোনগ্যাপ অ্যাপ্লিকেশনে আইওএস 7-তে এই স্ট্যাটাস বার ইস্যুটি ঠিক করার কোনও উপায় জানেন?

আমি পুরো ওয়েব পৃষ্ঠাটি সিএসএস দিয়ে অফসেট করার চেষ্টা করেছি তবে মনে হয় এটি কার্যকর হয় না। পুরো ইউআইভিউভিউ ভিউ অফসেট করার মতো উপায় বা স্ট্যাটাস বারটি আইওএস 6 এর মতো আচরণ করার উপায় আছে কি?

ধন্যবাদ


"স্ট্যাটাস বার ইস্যু" ঠিক কী? পুনরুত্পাদন করার জন্য কোনও নমুনা কোড?
র‌্যাপ্টর

4
@ শিবানর্যাপ্টর আইওএস With এর সাথে, স্ট্যাটাস বারটি এখন দেখার একটি অংশ, সুতরাং আপনার যদি পূর্ববর্তী আইওএস সংস্করণগুলির সাথে স্ক্রিনের শীর্ষে থাকা স্টাফ থাকে তবে এটি এখন স্ট্যাটাস বারের নীচে রয়েছে, এটি স্বয়ংক্রিয়ভাবে ঠিক নীচে চাপানো হয়নি, যা কিছু সমস্যা হতে পারে। আমার পরামর্শটি হ'ল আপনার সামগ্রীর জন্য একটি মোড়ক তৈরি করা, এবং 20px এর মার্জিন-শীর্ষ সেট করা।
অ্যান্ড্রু লাইভলি

@ অ্যান্ড্রু লাইভলি - পৃষ্ঠাটি যখন স্ক্রোল করছে তখন এটি সত্যিই কাজ করে না, ইউআইউইউভিউ ভিউ সরানোর কোনও উপায় আছে কি?
লুডিগ

উত্তর:


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
ইন অ্যাপ ব্রাউজার প্লাগইন দিয়ে অন্য কেউ কি এটি ব্যবহার করছেন? যদি আমি অ্যাপ অ্যাপ্লিকেশন ব্রাউজারটিকে "উপস্থাপনা = পূর্ণস্ক্রিন" হিসাবে কনফিগার করি তবে ব্রাউজারটি বন্ধ হওয়ার পরে একটি ফাঁকা নীচের মার্জিন প্রদর্শিত হবে। দেখে মনে হচ্ছে মার্জিনটি ইনপ্রেড ব্রাউজার টুলবারের মতো একই উচ্চতা। "পৃষ্ঠাগুলি" তে উপস্থাপনাটি টাইপ করা আইপ্যাডে এটি ঠিক করে তবে আইফোন সর্বদা "ফুলস্ক্রিন" ব্যবহার করে বলে মনে হচ্ছে। কোন workaround?
পল

4
উত্তরের জন্য অত্যন্ত কৃতজ্ঞ - তবে একই সমস্যাটি ফোনগ্যাপ ইন অ্যাপ ব্রাউজারে প্রযোজ্য - এটি স্ট্যাটাস বারটিও ওভারলে করে। এর জন্য কোন ধারণা?
মাইকেল

4
হ্যাঁ, আমরা কর্ডোভা (২.৩.০) এর একটি পুরানো সংস্করণ ব্যবহার করি এবং এটি ঠিক করতে আপনাকে ওয়েবভিউবাউন্ডস.রিগিন.ই = ২০ সেট করতে হবে; createViewsWithOptions এ। এছাড়াও, দেখুন যে ব্যাকগ্রাউন্ডের রঙ সেট করা হচ্ছে এবং এটির সাথে চারপাশে খেলুন। লুডউইগ ক্রিস্টফারসন-এর দুর্দান্ত উত্তরের মতোই আইওএস 7 এবং এর উপরে সংস্করণ পরীক্ষা করুন check
hnilsen

4
এছাড়াও - আপনি যদি অ্যাপ্লিকেশন ব্রাউজার ব্যবহার করছেন তবে প্রতিবার আপনি ফিরে আসার সাথে দেখাটি পুনরায় আরম্ভ করবে। সুতরাং এটি এমন একটি পতাকা যুক্ত করা বুদ্ধিমানের কাজ হবে যা বলে যে এটি ইতিমধ্যে আপনার মেইনভিউকন্ট্রোলআর.এ চালিত হয়েছে।
hnilsen

14
এই কোডটি ভিউ উইল অ্যাপয়ারে চলেছে, আপনার ফোনগ্যাপ / কর্ডোভা অ্যাপ্লিকেশন যদি অন্যান্য নেটিভ ভিউগুলি (ক্যামেরা ক্যাপচার কথোপকথনের মত) প্রদর্শন করে এবং এই দৃশ্যে ফিরে আসে তবে আপনি এই সমাধানটি নিয়ে সমস্যার সমাধান করবেন। আমার জন্য স্থির সিদ্ধান্তটি ছিল 'ভিউবাউন্ডস' থেকে '[স্ব.উইউভিউ সীমান্ত]' এর পরিবর্তে '[স্ব.উইউভিউ সীমান্ত]' এর পরিবর্তে।
ক্রিস কারচার

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;
}

4
দুর্দান্ত কাজ করছে :) আপনাকে অনেক ধন্যবাদ :)
rkaartikeyan

পারফেক্ট - এটি আমার জন্য আরও ভাল সমাধান ছিল।
ডেভিড দাউডলিন

এই ফিক্সটি Xcode বিল্ডের পরে স্থানীয়ভাবে কাজ করে, তবে আমি ফোনগ্যাপ বিল্ড করার পরে না not কোন ধারনা? আমার কাছে একটি আইওএস অ্যাপ্লিকেশন ফোনগ্যাপ ২.৯ দিয়ে তৈরি করা হয়েছে
ডেমিট্রিটি

এই সমাধানটি কাজ করে তবে পুরো স্ক্রিন ভিডিও নিয়ে আমার একটি সমস্যা ছিল এবং আমি এটি অন্যটিও
status-

4
@ কিরণকুমারসরিপাতি আসলে আমার শেষ সমাধানটি হ'ল আশা করি আপনার জন্য এটি এনএসআইন্টেজার স্ক্রিন সাইজ = 0; // গ্লোবাল যদি ([[[ইউআইডি ডিভাইস কারেন্ট ডিভাইস] সিস্টেম ভার্সন] ফ্লোটভ্যালু]> = 7) {সিজিআরেক্ট ভিউবাউন্ডস [[স্ব। ওয়েবেভিউ সীমান্ত]]; ভিউবাউন্ডস.রিগিন.ই = 20; যদি (স্ক্রিন সাইজ == 0) {ভিউবাউন্ডস.সাইজ.হাইট = ভিউবাউন্ডস.সাইজ.হাইট - 20; স্ক্রিনসাইজ = ভিউবাউন্ডস.সাইজ.হাইট; । self.webView.frame = ভিউবাউন্ডস;
That

22

দয়া করে ফোনগ্যাপের জন্য প্লাগইনটি ইনস্টল করুন: https://build.phonegap.com/plugins/505

এবং ওয়েবভিউয়ের ওভারলেটিকে নিয়ন্ত্রণ করতে নীচের মতো সঠিক সেটিংটি ব্যবহার করুন:

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

আমার জন্য, ফোনগ্যাপ ৩.৩.০ সহ এটি কাজ করে।

গিথুব প্রকল্পের পৃষ্ঠায় আরও তথ্য: https://github.com/ iPhonegap-build/StatusBarPlugin


এই উত্তরের জন্য অনেক ধন্যবাদ !! আমি এই প্লাগইনটি দিয়ে চেষ্টা করছিলাম: build.phonegap.com/plugins/715 , সমস্যাটি হল নামগুলি একই। তবে কখনই আমার পক্ষে কাজ করে না। অনেক ধন্যবাদ!!
জাবেল মার্কেজ

সত্যি কথা বলতে কি, আমি মনে করি না যে আমি আপনার দ্বারা বর্ণিত এটির আগে চেষ্টা করেছি কিনা।
এক্সডেমোকল

20

স্ট্যাটাসবারটি আড়াল করতে, MainViewController.mফাংশনের অধীনে ফাইলটিতে নিম্নলিখিত কোড যুক্ত করুন-(void)viewDidUnload

- (BOOL)prefersStatusBarHidden
{
    return YES;
}

এটি কাজ করে। এটি আপনার অ্যাপ্লিকেশনটিকে পূর্ণ স্ক্রিন তৈরি করে স্ট্যাটাসবারটি আড়াল করবে। আমি কেবল এটি সিমুলেটারে পরীক্ষা করেছি তবে আমার আইফোন এবং আইপ্যাডগুলিতে কোনও বিল্ড চালানোর পরে পরে রিপোর্ট করব।
রব ইভান্স

আইপ্যাড 2 এ আইওএসে আমার পক্ষে কাজ করে
মার্ক উইলিয়ামস 21

এটি আইপ্যাড এয়ার আইওএস 7.1.2 এ সূক্ষ্মভাবে কাজ করে এবং কোনও পরিবর্তন বা প্লাগইনগুলির প্রয়োজন নেই। দুর্দান্ত উত্তর, আপনাকে ধন্যবাদ!
স্ক্রিপ্টলেব

এটি হিউম্যান ইন্টারফেস নির্দেশিকাতে 'নিমগ্ন ফুলস্ক্রিন মোড "সম্পর্কে অ্যাপল যা বলেছে তা পুরোপুরি উপেক্ষা করে ... কেবলমাত্র আপনি আইওএসের শীর্ষে একটি মোড়ক ব্যবহার করছেন এর অর্থ এই নয় যে আপনি ডিজাইনের ধরণগুলি উপেক্ষা করতে পারবেন ...: /
জেসিস .co.tt

15

উত্তর https://stackoverflow.com/a/19249775/1502287 আমার পক্ষে কাজ করেছে, তবে ক্যামেরা প্লাগইন (এবং সম্ভাব্য অন্যরা) এবং "উচ্চতা = ডিভাইস- এর সাথে একটি ভিউপোর্ট মেটা ট্যাগ সহ এটি তৈরি করার জন্য আমাকে এটিকে কিছুটা পরিবর্তন করতে হয়েছিল Answer উচ্চতা "(উচ্চতার অংশটি নির্ধারণ না করা আমার ক্ষেত্রে কীবোর্ডটি ভিউয়ের উপরে প্রদর্শিত হতে পারে, সেই সাথে কিছু ইনপুট লুকিয়ে রাখবে)।

প্রতিবার যখন আপনি ক্যামেরা ভিউটি খুলবেন এবং আপনার অ্যাপ্লিকেশনটিতে ফিরে যাবেন, তখন ভিউ উইল অ্যাপয়ার পদ্ধতিটি কল করা হবে এবং আপনার ভিউ 20px দ্বারা সঙ্কুচিত হবে।

এছাড়াও, ভিউপোর্টের জন্য ডিভাইস-উচ্চতায় 20 টি অতিরিক্ত পিক্স অন্তর্ভুক্ত থাকবে, সামগ্রীটি স্ক্রোলযোগ্য এবং ওয়েবভিউয়ের চেয়ে 20px উচ্চতর হবে।

ক্যামেরা সমস্যার সম্পূর্ণ সমাধান এখানে দেওয়া হল:

মেইনভিউকন্ট্রোল.আরে:

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

মেইনভিউকন্ট্রোলআরমি:

@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" />

এবং সব এখন ভাল কাজ করে।


জ্যাকুরি @ ডিপ্পি ছাড়াই যে কোনও পদ্ধতি
অর্জুন টি রাজ

কেবল এই কোডটি যুক্ত করুন - (অকার্যকর) চিত্রপিকারকন্ট্রোলার: (UIImagePickerController *) পিকারটি ফিনিশপিকিংমিডিয়া উইথআইনফো: (এনএসডিয়েচার *) তথ্য {} পদ্ধতি যা সিভিভি ক্যামেরা.এম-এর ভিতরে রয়েছে যা ক্যামেরা ইস্যুও সমাধান করে। এনএসলগ (@ "ক্লোজড ক্যামেরা"); [[ইউআইএএপ্লিকেশন শেয়ারড অ্যাপ্লিকেশন] সেট স্ট্যাটাসবারহিডেন: ইয়েস সহ অ্যানিমেশন: ইউআইএসটিটাসবার অ্যানিমেশনন নন];
অর্জুন টি রাজ

মানুষ, আমি আপনাকে ধন্যবাদ বলার শব্দগুলি জানি না! আমি ক্যামেরার সাহায্যে 20px সঙ্কুচিত সমস্যার সাথে লড়াই করে এসেছি এবং এখন অবধি সমাধানটি খুঁজে পেলাম না ...
tuks

6

(app name)-Info.plistএক্সকোডে অ্যাপ্লিকেশনটির ফাইলে যাওয়ার চেষ্টা করুন এবং কীগুলি যুক্ত করুন

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

সমস্যা ছাড়াই এটি আমার পক্ষে কাজ করে।


আমার জন্য, এটি স্থানীয় বিল্ড সহ সিমুলেটারে কাজ করে তবে দূরবর্তী বিল্ড সহ আইপ্যাডে নয়। সিমুলেটর এবং আইপ্যাডে বিল্ড এবং আইওএস 7 এর জন্য পিজি 3.1 ব্যবহার করা।
পের কুইস্টড আরনসন

@ পেরকিউটেডআরনসন আপনি এটিকে স্থানীয়ভাবে আইপ্যাডে তৈরি করার চেষ্টা করতে পারেন। আমি কোনও সমস্যা ছাড়াই ফোনগ্যাপ 3.1 সহ একটি আইপ্যাড আইওএস 7 নিয়ে কাজ করছি।
dk123

6

কর্ডোভা ৩.১++ এর জন্য, একটি প্লাগইন রয়েছে যা আইওএস 7+ এর জন্য স্থিতি বারের আচরণে পরিবর্তন নিয়ে আসে।

স্থিতি দণ্ডটি কীভাবে এর পূর্ব আইওএস 7 অবস্থায় ফিরিয়ে আনা যায় সেগুলি সহ এটি এখানে খুব সুন্দরভাবে নথিভুক্ত করা হয়েছে

প্লাগইন ইনস্টল করতে, চালান:

cordova plugin add org.apache.cordova.statusbar

তারপরে এটি config.xml এ যুক্ত করুন

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

আপনি স্ট্যাটাসবারের রঙটিও সেট করতে পারেন যা ডিফল্ট কালো রঙে রয়েছে: <পছন্দসই নাম = "স্ট্যাটাসবারব্যাকগ্রাউন্ড কালার" মান = "# 000000" /> দেখুন: প্লাগইনসকর্ডোভা.আইও /#/package/org.apache.cordova.statusbar
ইজাদেন

4
কর্ডোভা 5+ এর জন্য, প্লাগইনটির নতুন নামকরণ করা হয়েছে: কর্ডোভা প্লাগইন অ্যাড
কর্ডোভা

5

আমি ইনস্টল করে org.apache.cordova.statusbarএবং আমার শীর্ষে যুক্ত করে আমার সমস্যার সমাধান করছি config.xml:

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

এই কনফিগারেশনগুলি কেবল আইওএস 7+ এর জন্য কাজ করে

তথ্যসূত্র: http://devgirl.org/2014/07/31/ iPhonegap-developers-guid/



1

আইওএস 7 সনাক্ত করা থাকলে আমি শরীরে কোনও শ্রেণি যুক্ত করতে নিম্নলিখিত কোডের টুকরোটি ব্যবহার করি। আমি তখন স্টাইলটি ক্লাসে একটি যুক্ত করতে20px আমার ধারকটির শীর্ষে মার্জিন । আপনার "ডিভাইস" প্লাগইন ইনস্টল রয়েছে এবং এই কোডটি "ডিভাইসডিয়ার" ইভেন্টের মধ্যে রয়েছে তা নিশ্চিত করুন।

চারপাশে পড়া থেকে, আমি শুনেছি যে ফোনগ্যাপের পরবর্তী আপডেট (আমি বিশ্বাস করি 3.1) আইওএস 7 এর স্ট্যাটাস বারে পরিবর্তনগুলি আরও ভালভাবে সমর্থন করবে। সুতরাং এটি কেবল একটি স্বল্পমেয়াদী সংশোধন হিসাবে প্রয়োজন হতে পারে।

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

1

লুডভিগের উত্তর আমার পক্ষে কাজ করেছিল।

যে কেউ তার উত্তরটি ব্যবহার করেছেন এবং এখন সাদা মার্জিনের রঙ পরিবর্তন করতে চাইছেন (এটি তুচ্ছ মনে হতে পারে তবে আমাকে স্টাম্পড করেছিল), দেখুন:

আমি iOS7 স্ট্যাটাস বার ওভারলে ইস্যুটি ঠিক করতে UIWebView কে স্লাইড করার পরে কীভাবে UIWebView পটভূমির রঙ পরিবর্তন করতে পারি?


1

আর একটি উপায় পিছনে সামঞ্জস্যপূর্ণ যাচ্ছে । সেই iOS 7বর্ণটি দিতে HTML অনুসারে (উপরে অতিরিক্ত 20px মার্জিন সহ) তৈরি করুন full screenএবং সেই অতিরিক্ত মার্জিনটি কেটে ফেলুন 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 এর ভিতরে নিম্নলিখিত কোডটি লিখুন ( কোডটির শেষ লাইনের " হ্যাঁ, হ্যাঁ; " এর ঠিক আগে ):

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

আমি আপনার প্রতিক্রিয়া জন্য অপেক্ষা করব! :)


এই কোডটি স্ট্যাটাস বারটি আড়াল করতে এবং সমস্যাটি সমাধান করার জন্য দুর্দান্ত কাজ করছে বলে মনে হচ্ছে, আমি গতকালও কিছুটা ঘুরে দেখলাম এবং কোডের একটি শান্তি পেয়েছি যা মূলত ইউআইউইভিউভিউকে পুনরায় আকার দিয়েছে এবং এটিকে সরিয়ে নিয়েছে আমি এটিকে উত্তর হিসাবেও যুক্ত করেছি :)
লুডিগ

দারুণ. আমার কোডটি এটি করার জন্য কেবল একটি সহজ এবং সহজ উপায় ব্যবহার করছে! আমরা সকলেই বিভিন্ন পদ্ধতি সহ একই কাজ করছি :)
এহসান

0

যদি আমরা চিত্র গ্যালারীটির জন্য ক্যামেরা প্লাগইন ব্যবহার করি, স্থিতি বারটি ফিরে আসবে যাতে সমস্যাটি সমাধান করতে দয়া করে এই লাইনটি যুক্ত করুন

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

প্রতি

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

প্লাগিন তালিকায় সিভিডিসেমের.এম এর ভিতরে ফাংশন


0

প্রারম্ভিক মুহূর্তে didFinishLaunchingWithOptions ইভেন্টে AppDelegate.m এর মধ্যে নিম্নলিখিত কোডটি লিখুন ।

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

এবং উপরের আইওএস 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];
}

এটি স্ট্যাকওভারফ্লো আলোচনায় আমি যা খুঁজে পেয়েছি তার সংমিশ্রণ, কর্ডোভা স্ট্যাটাসবার প্লাগইন থেকে কিছু কোড (যাতে 20px মানকে হার্ডকোড না করা) এবং আমার অংশে কিছু উদ্দীপনা (আমি কোনও আইওএস দেব নই আমি এই সমাধানে আমার পথকে ফাঁদে ফেলেছি)।


0

সবার আগে, আপনার প্রকল্পে ডিভাইস প্লাগইন যুক্ত করুন। প্লাগিন আইডি হ'ল: org.apache.cordova. ডিভাইস এবং সংগ্রহস্থল হ'ল: 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 এ এই সেটিংটি যুক্ত করুন:

<প্রিফারেন্সের নাম = "স্ট্যাটাসবারো ওভারলেস ওয়েবভিউ" মান = "মিথ্যা" />

  1. ডিভাইসরেডিতে নিম্নলিখিত কোডটি ব্যবহার করুন

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

এটি আইওএস এবং অ্যান্ড্রয়েডে আমার জন্য কাজ করে।

শুভকামনা!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.