在 iOS phonegap 应用程序中添加 wkWebview 插件时状态栏位置不正确

status bar position is not proper when wkWebview plugin is added in iOS phonegap application

我正在使用 phonegap 开发 iOs 应用程序。

phonegap 版本:3.5.0

xcode 版本:6.1.1

我已经为状态栏添加了 "org.apache.cordova.statusbar" 插件。我的应用程序在 iOs 7 和 iOs 8 上运行良好。但是为了在 iOs 8 中获得更好的性能,我添加了 "com.telerik.plugins.wkwebview" 插件。添加此插件后,header 部分应用程序被销毁,看起来它在状态栏内。我还附上了这个问题的图片。我在 my_project-info.plist 文件中添加了以下 属性:

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

您可以使用以下步骤解决此问题

1) 转到您的项目资源管理器,单击 class 文件夹,那里有文件 "MainViewController.m",添加代码

- (BOOL)prefersStatusBarHidden {
    return YES;
}

2) 转到您的项目资源管理器,单击 Resources 文件夹,其中有类似 "Your_project_name-Info.plist" 的文件,将其添加为密钥 View controller-based status条形图外观 和值YES.

从 MainViewController.m 文件中找到“- (void)viewWillAppear:(BOOL)animated”方法并将该方法替换为以下代码。

- (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 and iOS 8

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

这个解决方案对我有用。