我有一个仅使用iPhone的应用程序使用sencha touch和cordova,功能完全没有任何iphone问题。当我在Ipad上运行时 - 它会在顶部显示一个空白的白色屏幕,通常会显示状态栏。它可以扩展到460px的适当高度,但顶部有一个白色条。当我在iPhone或iPad模拟器上运行它时,它不会出现 - 只有当我在实际的IPad设备上运行它时,白色条才出现并在所有页面上都可以看到。任何人都知道我怎么能摆脱这个白色的酒吧?我也尝试在index.html中设置视口,但这也不起作用。
<meta name="viewport" content="initial-scale=1.0">
也试过
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" onload="false" />
</feature>
在cordova config.xml中但没有用。
除此之外,整个应用程序运行正常,没有任何问题。
答案 0 :(得分:1)
经过两天的挣扎,我终于找到了答案。由于我的项目使用了cordova状态栏插件,我可以通过调整index.html自定义状态栏。因此,对于面临相同问题的任何人,只有iPhone的应用在应用页面上方显示一个空白的状态栏,这里有可以解决您问题的链接:http://www.joshmorony.com/take-complete-control-of-the-ios-status-bar-with-phonegap-build/
所以我所要做的就是在index.html中添加行StatusBar.backgroundColorByName("black")
。因此状态栏显示为黑色并与背景黑色合并,同时应用程序完全可见。这个问题的结果是即使在iPhone上,我的状态栏也会出现黑色背景,我不想这样,所以我必须设置if条件来检查设备类型。这是解决问题的完整代码:
<script src="touch/sencha-touch-all.js">
</script>
<!-- The line below must be kept intact for Sencha Command to build your application -->
<script id="microloader" type="text/javascript" src=".sencha/app/microloader/development.js"></script>
<script>
document.addEventListener('deviceready', function() {
setTimeout(function() {
navigator.splashscreen.hide();
//StatusBar.styleDefault();
if(Ext.os.is.Tablet)
{
StatusBar.backgroundColorByName("black");
}
else
{
StatusBar.styleDefault();
}
}, 1000);
});
</script>