Ipad上仅限Iphone的app会在顶部显示一个空白的白条

时间:2016-07-07 00:45:12

标签: ios cordova ipad sencha-touch

我有一个仅使用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中但没有用。

除此之外,整个应用程序运行正常,没有任何问题。

1 个答案:

答案 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>