【问题标题】:Using StatusBar plugin works on simulator, not device使用 StatusBar 插件适用于模拟器,而不是设备
【发布时间】:2015-07-07 02:24:18
【问题描述】:

此时我束手无策,试图解决 IOS7 问题,即状态栏与我的应用程序顶部重叠。我采取的步骤是:

  • phonegap plugins add org.apache.cordova.statusbar
  • 将以下内容添加到我的主 config.xml: <gap:plugin name="org.apache.cordova.statusbar"/> <preference name="fullscreen" value="true" /> <preference name="StatusBarOverlaysWebView" value="false" /> <preference name="StatusBarStyle" value="default" /> <feature name="StatusBar"> <param name="ios-package" value="CDVStatusBar" onload="true" /> </feature>
  • 通过阅读各种 SO 帖子,我尝试了多次添加/删除插件和 ios 平台。

该插件现在成功调整了模拟器上的状态栏行为(运行cordova run ios)但是当我使用Phonegap Build 在设备上实际运行它时,状态栏仍然覆盖我的应用程序webview。

提前感谢您的帮助。

【问题讨论】:

  • 因为只有在使用phonegap build时才会出现问题,所以问题应该出在config.xml上。无论如何,尝试使用 cordova run ios --device 在设备上本地运行
  • 是的,在模拟器上它按预期工作(正如我所提到的)。只有在我继续遇到问题的设备上。不用说,这令人沮丧。
  • 如果你使用 cordova run ios --device 它应该在设备上安装并运行

标签: ios cordova phonegap-plugins phonegap-build ios7-statusbar


【解决方案1】:

你可以打开MainViewController.c(我想这在Cordova中是这么叫的),找到viewDidLoad:方法并插入如下代码:

if (IS_IOS7_OR_LATER) {
    CGRect *frame = self.webview.frame;
    frame = CGRectMake(0, 20, frame.size.width, frame.size.height);
    self.webview.frame = frame;
}

其中 IS_IOS7_OR_LATER 是一个宏或其他代码,用于检查我们是否在 iOS 7 或更高版本上运行。

【讨论】:

  • 他有 phonegap 构建的问题,他不能在那里编辑任何本机代码
  • 是的,他可以,Cordova 不会覆盖更改。
  • 他正在使用phonegap build,这是一个将html、css和javascript编译成应用程序的在线服务,他不能在那里更改本地代码
  • 感谢您的尝试 :)
猜你喜欢
  • 2012-10-04
  • 1970-01-01
  • 2021-04-04
  • 2018-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-23
  • 1970-01-01
相关资源
最近更新 更多