如何在iOS上修复Cordova 3.1的键盘问题?

我刚刚使用示例iOS应用程序测试了Cordova 3.1并遇到了几个键盘问题。

应用设置:

  • Xcode 5
  • 状态栏已隐藏
  • 景观模式

config.xml中

问题:

  1. 所有版本:当关注输入字段时,整个视图会被推高,包括导航栏。

  2. iOS5 / 6:点击输入字段打开键盘,然后在键盘按下整个视图之前,屏幕顶部会短暂显示黑色间隙(是状态栏吗?)

  3. iOS7:没有类似#2问题的黑色差距,但还有其他问题:

    • 在移除(隐藏)之前我仍然看到配件吧。

    • 键盘是半透明的,然后我可以看到当前视图被推高的空间中的较暗背景。

如果我改变了,事情就更糟了:

  • 视图仍然被推高,当输入字段失去焦点时,即使在iOS 7上,屏幕顶部也会出现黑色间隙,如果KeyboardShrinksView = false,则不会发生这种情况。

  • iOS 7上的键盘不再是半透明的。

下面是我的config.xml

               

看看这个post。 这里报告了很多相同的问题。 最好将您的信息添加到Cordova JIRA错误跟踪系统,因为这是所有Cordova开发人员的工作方式。 https://issues.apache.org/jira/browse/CB-3020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13769996#comment-13769996

通过添加一个简单的动画来调整webview的大小,我能够让顶部标题滑动。 这是放在CDViewController.m中的keyboardWillShow函数中的代码

 [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDuration:1.0]; [self.webView setFrame:(CGRectMake(newFrame.origin.x, newFrame.origin.y, newFrame.size.width, newFrame.size.height))]; [UIView commitAnimations]; 

我接近让黑色的酒吧被隐藏但却无法让它运转良好。 这篇文章描述了你需要做什么。 您需要将webview重新定义动画与键盘动画匹配。 iOS 7 – 键盘动画