0

我使用 IBM Worklight 开发了一个应用程序并将其部署在 iOS7 设备上。我注意到,当导航屏幕移到上方并且状态栏在屏幕上方停留 1 秒钟,然后屏幕下降到其自然位置。当我们从一个屏幕导航到另一个屏幕时会发生这种情况。任何人都知道如何禁用此运动。这在 iOS 6 设备中没有发生。

在此处输入图像描述

我用过 Dojo,我的 Worklight 版本是 6.0.0.1

问候,V@run

4

1 回答 1

2

正如 Nathan Hazout 在TechNote中指出的那样,Worklight 将尝试在屏幕顶部留出 20px 以适应 iOS7 状态栏。

这是通过以下方式完成的:

  1. 将 CSS 类“wl_ios7”添加到“body”元素
  2. 在 Web 视图内容之前添加一个 id 为“wl_ios7bar”、高度为 20px 的“div”元素

(您可以通过使用 Web Inspector 查看 Worklight 应用程序 DOM 元素来检查)

此解决方案并不总是有效,在您的情况下,它似乎只部分有效。

当“showIOS7StatusBar”设置为 false 时,Worklight 将不会尝试处理 iOS7 状态栏,而将此任务完全留给您。值得注意的是,在 iOS6 及以下状态栏是由操作系统自动处理的。

关于您的问题没有足够的信息,所以我只能提供一般性建议。对我来说效果很好的是使用 CSS Media Queries将“padding-top:20px”添加到“body”元素,如下所示:

@media (min-height: 568px) and (orientation: portrait), (min-height: 320px) and (orientation: landscape) {
    #content {
        padding-top: 20px;
    }
}

这是因为在 iOS7 上 iPhone 的高度是 568px,而在 iOS6 及以下是 548px(“document.documentElement.clientHeight”)。对于横向,值分别为 320px 和 300px。我也喜欢这个解决方案,因为它更符合RWD方法。

随着这个建议的变化,我已经能够在我的小项目中相对较好地处理状态栏,但请记住,您的里程可能会有所不同。

于 2013-10-31T10:31:15.630 回答